WCF REST 和 JSON - 序列化和空元素
我正在使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以在序列化之前和之后进行一些打包和解包操作。例如:
班级的一与一
没有 bool,并转换为
之前和之后都合适
传输。 (发送最少金额
数据,如果字节数更大
考虑到代码复杂性)
第一个布尔值是否应该
为空。
You could do a little bit of packing and unpacking before and after the serialization. E.g.:
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)
whether the first bool is supposed to
be null.