Jquery 在处理Json响应时,有哪些关键问题?

Jquery 在处理Json响应时,有哪些关键问题?,jquery,asp.net-mvc,json,Jquery,Asp.net Mvc,Json,我正在从事一个ASP.NETMVC项目,一直在学习JSON对象的一些小技巧,这些技巧让我抓狂了好一阵子。例如,确保当我从jQuery调用$.getJSON()时,我实际上需要确保我的JSON返回的是一个对象,而不仅仅是一个字符串值(嗯,是吗?) 在使用JSON对象和响应时,您需要注意哪些关键事项?我对ASP.Net特别感兴趣,但可以是任何语言。当我在一个WCF项目中使用.Net序列化为另一个服务生成json响应时,出现了一个讨厌的json错误。据在线验证者称,这是完全合法的JSon,但收信人不会

我正在从事一个ASP.NETMVC项目,一直在学习JSON对象的一些小技巧,这些技巧让我抓狂了好一阵子。例如,确保当我从jQuery调用$.getJSON()时,我实际上需要确保我的JSON返回的是一个对象,而不仅仅是一个字符串值(嗯,是吗?)


在使用JSON对象和响应时,您需要注意哪些关键事项?我对ASP.Net特别感兴趣,但可以是任何语言。

当我在一个WCF项目中使用.Net序列化为另一个服务生成json响应时,出现了一个讨厌的json错误。据在线验证者称,这是完全合法的JSon,但收信人不会接受

事实证明,内容的顺序很重要。根据JSon规范,顺序应该无关紧要,但很明显,另一端的消费者使用了某种定制解析器,当它在顶部找不到某个字段时,该解析器会阻塞。序列化程序按字母顺序排列内容

我绝望了一会儿,直到我发现我可以通过数据契约给序列化程序一个明确的排序。问题解决了

例如:

[DataMember(Order = 1)] //<-- thank Zod this exists!
public List<Foo> MyFoos { get; set; }

[DataMember(Order=1)]//永远不要发送换行或新行。也因为角色逃跑。
如果您使用.NET Json searilzer,那么它应该为您解决这些问题,但如果您自己动手,则需要小心

我还注意到,有时字符串是用前导空格发送/检索的,所以请确保调用.trim()