下面是将JSON字符串转换为C#对象的方法,我们将使用转换器和 Newtonsoft.Json
等外部库来解析我们的对象
确保你的JSON对象格式正确且没有被转义。
注意,我们将JSON最外层生成的类名称默认JsonRootDto
可以通过 “类名” 这个生成属性进行修改
注意,生成的命名空间默认名称为LzlTool.Dto
可以通过 “命名空间” 这个生成属性进行修改
这个是一个示例JSON,我们在下面的步骤中使用它:
{
"Test": {
"id": 4,
"userid": "用户Id",
"object": {
"prop1": 1,
"prop2": "test"
},
"created_at": "2012-06-02 23:33:90",
"user_list": [
{
"id": "2",
"name": "测试1"
},
{
"id": "6",
"name": "测试2"
}
]
},
"Test2": {
"Prop2": "值1"
}
}
一个示例类代码:
using Newtonsoft.Json;
namespace LzlTool.Dto
{
public class UserListItem
{
/// <summary>
///
/// </summary>
[JsonProperty("id")]
public string Id { get; set; }
/// <summary>
/// 测试1
/// </summary>
[JsonProperty("name")]
public string Name { get; set; }
}
}
你会注意到这里有JsonProperty
在JSON对象中包含原始属性名称的字段上的属性。这是为了告诉Newtonsoft.Json
, C#类中的这个字段的名称与JSON对象中的不同。【告诉框架解析时候进行映射关联的字段】
假设您打开了 Visual Studio,那么下一步就是导入Newtonsoft.Json
程序集并创建从该工具生成的C#类。
您将在NuGet中下载安装
这个 Newtonsoft.Json
它将帮助我们读取JSON并将其映射到根对象。
然后添加创建的C#类到项目中
使用Newtonsoft.Json
进行反序列化
JsonRootDto deserializedClass = JsonConvert.DeserializeObject(jsonData);