gpt4 book ai didi

c# - 使用 JSON.NET 反序列化一些 JSON

转载 作者:行者123 更新时间:2023-11-30 18:10:23 25 4
gpt4 key购买 nike

我是 JSON 的新手,我需要解析 API 提供的一些内容。一个快速的谷歌搜索出现了JSON.NET ,所以我现在尝试使用它来将此 JSON 解析为列表对象。首先,JSON.NET 是最好的库吗?

这就是我想要做的:例如,我有一个名为 Item 的。 json 有许多“元素”(如果这就是它们的名称),每个元素包含 3 个字段:一个名为 id 的整数、一个名为 name 的字符串和一个名为 creationTime 的日期时间。我想将 json 中的所有这些项目“元素”解析为项目对象列表。我在 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 .谢谢!

最佳答案

我意识到这个问题已有 3 年历史,但我想我只是想补充一点,如果您想构建一个基于 JSON 的 Api,NancyFx 很棒:http://nancyfx.org/

编辑:请求的示例,真的很简单。要开始使用,只需通过 NuGet 将 nancyfx asp 包添加到 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);
};
}
}

关于c# - 使用 JSON.NET 反序列化一些 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1448184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com