使用Json响应时有哪些关键问题?

Phi*_*ler 5 asp.net-mvc jquery json

我正在开发一个ASP.Net MVC项目,并且已经学习了一些JSON对象的小技巧,让我头疼了很长一段时间.例如,确保当我从jQuery调用$ .getJSON()时,我实际上需要确保我的JSON返回一个对象,而不仅仅是一个字符串值(好吧,D'呃!对吧?).

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

cfe*_*ern 3

当我在 WCF 项目中使用 .Net 序列化为另一项服务生成 Json 响应时,发生了一个困扰我的令人讨厌的 json 错误。根据在线验证者的说法,这是完全合法的 JSON,但接收者不会吞下它。

事实证明,内容的顺序很重要。根据 JSon 规范,顺序应该不重要,但显然另一端的消费者使用了某种自定义解析器,当它没有在顶部找到某个字段时,该解析器就会卡住。序列化器按字母顺序排列内容。

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

例子:

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

将数组“MyFoos”放在 JSon 响应的顶部。

注意:如果执行此操作,请确保为每个数据成员指定顺序,因为没有顺序号的数据成员仍会浮到顶部。