【问题标题】:C# class to parse JSON result解析 JSON 结果的 C# 类
【发布时间】:2011-11-03 22:43:47
【问题描述】:

一个c#类应该如何反序列化下面的JSON字符串:

{
   "data": [
  {
 "id" : "id0012",
     "comments": {
        "data": [
           {
              "id": "123",
              "from": {
                 "name": "xpto",
                 "id": "5ddd"
              },
              "message": "tttt",
              "created_time": "2010-01-07T09:16:15+0000"
           },
           {
              "id": "222",
              "from": {
                 "name": "wwwww",
                 "id": "343434"
              },
              "message": "3333",
              "created_time": "2020-07-07T09:30:12+0000"
           }
        ],
        "paging": {
           "previous": "prevlink",
           "next": "nextLink"
        }
     }
  }

] }

谢谢

【问题讨论】:

    标签: c# json


    【解决方案1】:

    嗯,.NET 框架有很多不同的 JSON 库。有关几种不同实现的列表,请参阅json.org 的 C# 部分。其中最著名的库可能是Json.NET,它支持序列化、LINQ、BSON 等等!要快速开始使用 Json.NET 阅读 JSON,您应该查看 Reading and Writing JSON

    【讨论】:

    • 感谢您的回答。但问题与这个特定的 json 字符串有关。
    • @user285677:那么您是否尝试过使用带有该字符串的 Json.NET?如果是这样,出了什么问题?
    • 问题是我无法将所有 json 字符串直接转换为 c# 类,因为“cmets”是由一个包含消息数组和分页类的字典组成的。
    【解决方案2】:

    正如hangy 所说,您当然可以使用Json.NET 来解析该字符串。例如:

    using System;
    using System.IO;
    using Newtonsoft.Json.Linq;
    
    namespace EvalTest
    {
      public class Test
      {
        static void Main(string [] args)
        {
            string text = File.ReadAllText("test.txt");
            var json = JObject.Parse(text);
    
            var data = json["data"];
            Console.WriteLine((string) data[0]["id"]);
        }
      }
    }
    

    如果您需要更多帮助,您应该提出更具体的问题。

    【讨论】:

    • 我不确定,但这几乎就像 OP 要求一个可以序列化为类似示例的类。
    【解决方案3】:

    我使用这个工具Jsonclassgenerator。它可以为输入的 Json 字符串生成 C# 类。您不必使用生成的确切类。但是你可以看到类的格式并在你的项目中创建一个类似的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-12
      • 1970-01-01
      • 2020-12-30
      • 1970-01-01
      • 1970-01-01
      • 2013-05-22
      • 2014-03-23
      • 1970-01-01
      相关资源
      最近更新 更多