【发布时间】:2009-09-19 08:50:40
【问题描述】:
我对 JSON 很陌生,我需要解析一些 API 提供的内容。一个快速的谷歌搜索出现了JSON.NET,所以我现在尝试使用它将这个 JSON 解析为一个列表对象。首先,JSON.NET 是最好的库吗?
这就是我想要做的:例如,我有一个名为 Item 的 类。 json 有许多“元素”(如果它们被称为),每个 包含 3 个字段:一个名为 id 的整数、一个名为 name 的字符串和一个名为 creationTime 的日期时间。我想将 json 中的所有这些 Item “元素”解析为 Item 对象列表。我在 Item 类中创建了 3 个字段来匹配 JSON。如何使用 JSON.NET 做到这一点?
我试过了:
List<Item> fav = (List<Item>)new JsonSerializer().Deserialize(new JsonReader((TextReader)new StreamReader(response.GetResponseStream())));
但它似乎不起作用。我收到一个转换错误 - 它只是无法将它处理成一个列表附件,但我什至不确定它是否能够将 JSON 处理成一个 Item 类(JSON.NET 的文档不是很好,但我我明天要大量调试它)。
你能给我一些示例代码来解释我如何用 JSON.NET 解析它吗?
谢谢!
更新: 顺便说一句,忘了提 - 我的项目将针对 .NET Framework 2.0,所以我使用的是 JSON.NET 的旧版本:1.3.1。是否有任何巨大的优势可以使项目值得转换为 .NET 3.5,同时降低最低系统要求?
更新 #2: 我决定在 System.Web.Extensions.dll 中使用 JavascriptSerializer 类而不是 JSON.NET,关于此的问题已发布 here。谢谢!
【问题讨论】:
-
“似乎不起作用”不是很详细。发生什么了?是的,我想说 LINQ 总体上比 .NET 3.5 具有相当大的优势,这意味着您可以使用更新的 JSON.NET 版本。
-
@Jon 首先,据我所知,这是你第一次回复我的帖子,谢谢!不幸的是我不知道 LINQ,但我想学习它!我将尝试开始使用更新的版本。不起作用的是我收到一个转换错误 - 它只是无法将其转换为这样的列表附件。至少,这就是我认为的意思,因为 JSON.NET 的文档记录不是很好。以前有没有人使用过 JSON.NET,如果有,你能解释一下你将如何解决这样的问题吗?谢谢! ;)
-
我怀疑问题在于您专门寻求旧版本 JSON.NET 的帮助;许多人只熟悉最新版本。
-
评论不会“影响”帖子...只有编辑和答案。
-
@Marc 哦,我从来不知道!谢谢!
标签: c# .net json serialization json.net