在MyClass
中,我有财产JsonArrayString
。它是json对象的数组。
在ASP.NET MVC Core应用程序中将此字符串转换为MyJsonObject
类数组的最佳方法是什么。
P.S。我可以更改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"};
答案 0 :(得分:3)
我建议通过NuGet软件包管理器安装Newtonsoft.Json。然后使用JsonProperty
属性装饰POCO类的成员,以告诉序列化器哪个属性与特定的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);
答案 1 :(得分:0)
您必须通过NuGet软件包管理器添加Newtonsoft.Json。
public class MyClass
{
public string JsonArrayString => "[{\"Value\": \"1\", \"Name\": \"One\"}, {\"Value\": \"2\", \"Name\": \"Two\"}]";
public List<MyJsonObject> JsonArray => JsonConvert.DeserializeObject<List<MyJsonObject>>(JsonArrayString);
}
public class MyJsonObject
{
[JsonProperty("Value")]
string Value { get; set; }
[JsonProperty("Name")]
string Name { get; set; }
}
class Program
{
static void Main(string[] args)
{
var myClass = new MyClass();
}
}
您可以使用myClass.JsonArray访问json数组