首页 > 解决方案 > 将json字符串转换为对象数组的最佳方法是什么?

问题描述

MyClass我有财产JsonArrayString。它是 json 对象的数组。

MyJsonObject在 ASP.NET MVC Core 应用程序中将此字符串转换为类数组的最佳方法是什么。

PS我可以改变json字符串的结构。

class MyClass {
     public string JsonArrayString => "[{"Value": "1", "Name": "One"}, ...]";
     public List<MyJsonObject> JsonArray => ...
}

public class MyJsonObject {
    string Value { get; set; }
    string Name { get; set; }
}

结果:

// First element of JsonArray => MyJsonObject() { Value = "1", "Name" = "One"};

标签: c#jsonasp.net-mvc

解决方案


我建议通过 NuGet 包管理器安装Newtonsoft.Json 。然后用属性装饰 POCO 类的成员,JsonProperty以告诉序列化器哪个属性与特定的 JSON 键匹配:

public class MyJsonObject
{
  [JsonProperty("Value")]
  string Value { get; set; }

  [JsonProperty("Name")]
  string Name { get; set; }
}

您可以将 JSON 反序列化为相应的对象实例:

var jsonString = "[{\"Value\": \"1\", \"Name\": \"One\"}, {\"Value\": \"2\", \"Name\": \"Two\"}]";
List<MyJsonObject> myJsonObjects = JsonConvert.DeserializeObject<List<MyJsonObject>>(jsonString);

推荐阅读