【问题标题】:How to parse a JSON array of objects in C#如何在 C# 中解析 JSON 对象数组
【发布时间】:2016-08-04 20:01:55
【问题描述】:
{
   "jsonstring": [

  {
     "id":"01",
     "language": "Java",
     "edition": "third",
     "author": "Herbert Schildt"
  },

  {
     "id":"07",
     "language": "C++",
     "edition": "second",
     "author": "E.Balagurusamy"
  }


   ]
}

获取这样的发布请求如何解析。

【问题讨论】:

  • 谷歌搜索“如何在 C# 中解析 JSON 对象数组”会返回 很多 个答案。你试过什么吗? Json.NET 可能是最流行的解析器,但它不是唯一的
  • 具体问题应该在这个论坛上提问。像这样的一般问题很容易在 google 上找到

标签: c# json


【解决方案1】:

使用NewtonSoft.NET:

var obj = JsonConvert.DeserializeObject(json);

也许也可以为使用泛型创建一个相应的类:

public class ClassName {
    public string id { get; set; }
    public string language { get; set; }
    public string edition { get; set; }
    public string author { get; set; }
}

那么你可以这样做:

List<ClassName> list = JsonConvert.DeserializeObject<List<ClassName>>(json);

【讨论】:

  • 再添加一个信息,你可以直接使用工具从json生成类,这里是我用的jsonutils.com
  • @ShijoJohny 请务必查看以下没有任何外部依赖项的答案!
【解决方案2】:

在 .NET 中,您可以使用 JavaScriptSerializer。首先,您需要创建一个与 json 字符串具有相同结构的类。

例子:

{
    "Id":"07",
    "Language": "C++"
}


public class CSharpObject
{
    int Id {get; set;}
    string Language {get; set;}
}


string json = HttpUtility.HtmlDecode(jsonString);
JavaScriptSerializer json_serializer = new JavaScriptSerializer();
CSharpObject csharpObject = (CSharpObject)json_serializer.Deserialize<CSharpObject>(json);

【讨论】:

  • 太棒了,不需要外部库!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-01
  • 2019-01-14
  • 1970-01-01
  • 2011-08-04
  • 2012-07-21
  • 1970-01-01
相关资源
最近更新 更多