我正在从事一个JSON项目,并且已经学习了一些关于ASP.Net对象的小技巧,这让我摸不着头脑。例如,确保当我从jQuery调用$.getJSON()时,我实际上需要确保我的JSON返回的是一个对象,而不仅仅是一个字符串值(好吧,D‘a!对吧?)。
在您的经验中,使用JSON对象和响应时需要注意的一些关键事项是什么?我对ASP.Net特别感兴趣,但它可以是任何语言。
发布于 2010-02-12 16:45:56
当我在一个WCF项目中使用.Net序列化为另一个服务生成json响应时,出现了一个令人讨厌的JSon错误。根据一位在线验证者的说法,这是完全合法的JSon,但收件人不会接受它。
事实证明,内容的顺序很重要。根据JSon规范,顺序应该无关紧要,但显然另一端的消费者使用了某种自定义解析器,当它在顶部找不到某个字段时,它就会阻塞。序列化程序按字母顺序排列内容。
我绝望了一段时间,直到我发现我可以通过数据契约给序列化程序一个显式的排序。问题解决了。
示例:
[DataMember(Order = 1)] //<-- thank Zod this exists!
public List<Foo> MyFoos { get; set; }将数组“MyFoos”放在JSon响应的顶部。
注意:如果执行此操作,请确保为每个数据成员提供排序,因为没有订单号的数据成员仍将浮动到顶部。
发布于 2010-02-12 16:55:31
永远不要发送换行符或换行符。也是因为字符转义。如果你使用.NET Json searilzer,那么它应该为你处理这些事情,但如果你自己做,你需要小心。
另外,我注意到有时发送/检索字符串时会使用前导空格,因此请确保调用.trim()!
https://stackoverflow.com/questions/2250472
复制相似问题