我正在开发一个ASP.Net MVC项目,并且已经学习了一些JSON对象的小技巧,让我头疼了很长一段时间.例如,确保当我从jQuery调用$.getJSON()时,我实际上需要确保我的JSON返回一个对象,而不仅仅是一个字符串值(好吧,D’呃!对吧?).
在您的体验中使用JSON对象和响应时需要注意哪些关键事项?我对ASP.Net特别感兴趣,但可能是任何语言.
最佳答案
当我在WCF项目中使用.Net序列化为另一个服务生成JSon响应时,发生了一个令我讨厌的json bug.根据在线验证者的说法,这是完全合法的JSon,但收件人不会吞下它.
原来,内容的顺序很重要.根据JSon规范,顺序应该无关紧要,但显然另一端的消费者使用某种自定义解析器,当它没有在顶部找到某个字段时会被阻塞.序列化程序按字母顺序放置内容.
我绝望了一会儿,直到我发现我可以通过数据合同给序列化器一个明确的排序.问题解决了.
例:
[DataMember(Order = 1)] //<-- thank Zod this exists!
public List
将数组’MyFoos’放在JSon响应的顶部.
注意:如果这样做,请确保为每个数据成员提供排序,因为没有订单号的数据成员仍将浮动到顶部.