我对 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,并且发布了一个关于该问题的问题 这里. 。谢谢!

有帮助吗?

解决方案

我建议您升级到 .net Framework 3.5 并使用 ASP.Net MVC 构建 json 服务。看:

http://msmvps.com/blogs/omar/archive/2008/10/03/create-rest-api-using-asp-net-mvc-that-speaks-both-json-and-plain-xml.aspx

其他提示

我意识到这个问题是约3岁,但我想我只想补充一点,如果你想建立一个基于JSON的API,NancyFx是真棒:的 http://nancyfx.org/

编辑: 一个例子的要求,真的很容易。要开始只是nancyfx ASP包添加到通过的NuGet一个Web项目。 (如果你将它添加到子路径上现有的应用程序,你需要一个位置添加到web.config文件,否则你是好去)

using Nancy;
using Nancy.ModelBinding;

public class Api : NancyModule
        {
            public Api()
            {
                Get["/api/order/create"] = x => 
                { 
                    var order = this.Bind<Order>(); //xml/json negotiated based on content header

                    var result = ... // Do stuff here

                    return Response.AsJson(result); 
                };
            }       
        }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top