c# - 将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"};
解决方案
我建议通过 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);
推荐阅读
- git - 如何通过在 $GIT_DIR/branches 中命名文件来在 git 中定义远程
- npm - 无法安装 WebPack CLI
- blockchain - Quorum Ethereum Truffle) 错误:数字最多只能安全存储 53 位
- visual-studio - 如何计算插入动态断点的地址
- java - 在 java 中使用广度优先搜索方法搜索 ZipEntry
- php - 如何访问 activeRecord 中模型的关系?
- android - 即使将值放入其中,内容值也被分配为 null
- css - 在 CSS Grid 中,为什么 1FR+9FR 在小屏幕尺寸中的行为与 10FR 不同?
- coq - 实数公理中的排除中间
- github-api - 如何启用 GitHub 预览功能,例如主题?