【发布时间】:2015-01-26 17:50:26
【问题描述】:
我正在从移动应用程序调用 .NET Web 服务(我认为是 WCF,我不是 .NET 专家)以获取 JSON 响应,并且我想重新排序这些字段。是的,我知道 JSON 的规范(在某种程度上有这样的事情)说它不支持排序。我只是想找到一种方法来从 Web 服务中订购响应字符串,然后再更新客户端应用程序以在之后对数据进行排序。
我发现了这个:https://msdn.microsoft.com/en-us/library/ms729813.aspx
但是在每个字段上使用[DataMember(Order = 0)](当然具有不同的排序值)对响应中字段的顺序没有影响。此属性是否仅适用于 XML 响应?
【问题讨论】:
-
我很好奇根据 JSON 属性的顺序开发了什么样的脆弱、不可更新的解决方案。我的意思是,如果它被解析成一个对象,那么“订单”这个词背后甚至没有任何意义。该解决方案是否直接使用 JSON 字符串?
-
@nasch - 即使您使用 Swift 或其他语言,关键问题是应用程序是否甚至注意属性的顺序。如果正在进行任何类型的反序列化,那么您就是在浪费精力在服务器响应中重新排序它们。按字母顺序排列的属性列表是所有反射库的工作方式。我以前从未见过应用程序手动处理 JSON 字符串,这就是我问的原因。我强烈建议您在此问题上浪费更多时间之前检查应用逻辑
-
@nasch 但您是否检查过实际响应,或者客户所说的响应?客户端可能正在反序列化结果并按字母顺序输出(即使服务的顺序不同),这就是我问的原因
-
@JDB,我想我知道你在说什么,我正在咨询 iOS 开发者。
-
@JDB 我认为您的评论是关键。我们已经确定不更新客户端应用程序就没有可行的解决方案。如果您想改写为答案,我会接受,并感谢大家的帮助。