【发布时间】:2011-02-26 09:57:43
【问题描述】:
几乎所有关于使用 C# 和 JSON 的问题的答案似乎都是“使用 JSON.NET”,但这不是我要寻找的答案。
我这么说的原因是,从我在文档中读到的所有内容来看,JSON.NET 基本上只是 .NET 框架中内置的 DataContractSerializer 性能更好的版本......
这意味着如果我想反序列化一个 JSON 字符串,我必须为我可能拥有的每个请求定义完整的强类型类。因此,如果我需要获取类别、帖子、作者、标签等,我必须为这些内容中的每一项定义一个新类。
如果我构建了客户端并确切知道字段是什么,这很好,但我使用的是其他人的 API,所以我不知道合同是什么,除非我下载示例响应字符串并手动创建类JSON 字符串。
这是唯一的方法吗?有没有办法让它创建一种可以用 json["propertyname"] 读取的哈希表?
最后,如果我必须自己构建类,当 API 发生变化而他们没有告诉我时会发生什么(因为 twitter 似乎因为这样做而臭名昭著)?我猜我的整个项目都会中断,直到我进入并更新对象属性...
那么使用 JSON 时的一般工作流程到底是什么?一般来说,我的意思是与图书馆无关。我想知道一般情况下它是如何完成的,而不是专门针对目标库...
【问题讨论】:
-
另外:有没有一种工具可以基于 JSON 字符串自动执行这些数据协定?一些 api 有数十种返回类型,如果尝试将它们全部制作出来会很疯狂......
标签: c# .net json serialization datacontract