WCF REST 和 JSON - 序列化和空元素

发布于 2024-09-19 18:27:42 字数 387 浏览 3 评论 0原文

我正在使用 WCF 返回 REST 服务中的项目列表(用户定义的类)。我以 JSON 形式返回项目,并在某些客户端 javascript 中使用它(因此该类的“架构”源自 javascript 库所需的内容)。该类相当基础,包括字符串和布尔值。 bool 是可选的,因此如果它不存在,JavaScript 库将使用默认值,如果它存在(true 或 false),则使用该值。

问题是,如果我使用 bool,序列化时该值默认为 false,如果我使用 bool?,该成员仍然在 JSON 中发送并默认为 null,这会导致库出现问题(它不会回退)为默认值)。

我知道我可能会弄乱 javascript 库,但我想找到一种方法来不发送任何 null 成员,这样它们就不会出现在序列化的 JSON 中。

有什么想法吗?

I am returning a list of items (user defined class) in a REST service using WCF. I am returning the items as JSON and it is used in some client side javascript (so the 'schema' of the class was derived from what the javascript library required). The class is fairly basic, strings and a bool. The bool is optional, so if it is absent the javascript library uses a default value, and if it is present (true or false) the value is used.

The problem is if I use a bool, the value is defaulted to false when serialized, and if i use a bool?, the member is still sent accross in the JSON and defaulted to null which causes problems with the library (it wont fall back to the default value).

I know I can probably mess around the the javascript library, but I would like to find a way to just not send any members which are null so they dont show up in the serialized JSON at all.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

感性 2024-09-26 18:27:42

您可以在序列化之前和之后进行一些打包和解包操作。例如:

  • 你可以制作两个不同的版本
    班级的一与一
    没有 bool,并转换为
    之前和之后都合适
    传输。 (发送最少金额
    数据,如果字节数更大
    考虑到代码复杂性)
  • 您可以添加另一个 bool 来告诉
    第一个布尔值是否应该
    为空。

You could do a little bit of packing and unpacking before and after the serialization. E.g.:

  • You could make two different versions
    of the class, one with and one
    without the bool, and convert as
    appropriate before and after
    transmitting. (sends the least amount
    of data, if # of bytes is a greater
    consideration than code complexity)
  • You could add another bool that tells
    whether the first bool is supposed to
    be null.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文