Newtonsoft.Json.dll反序列化JSON字符串的方法

时间:2023-03-08 16:45:07

  1.直接反序列化JSON字符串

//引用序列化、反序列化JSON字符串用到的空间
using Newtonsoft.Json;
using Newtonsoft.Json.Linq; //定义一个JSON字符串
string jsonText = "[{'a':'aaa','b':'bbb','c':'ccc'},{'a':'aaa2','b':'bbb2','c':'ccc2'}]";
//反序列化JSON字符串
JArray ja =(JArray) JsonConvert.DeserializeObject(jsonText);
//将反序列化的JSON字符串转换成对象
JObject o = (JObject)ja[];
//读取对象中的各项值
Console.WriteLine(o["a"]);
Console.WriteLine(ja[]["a"]);

2.定义对象列表,然后反序列化JSON字符串

2.1 添加一个类,定义一个对象

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; /// <summary>
///Customer 的摘要说明
/// </summary>
public class Customer
{
//在序列化前后没有变动
public string a
{ get; set; }
//在序列化前后设置和重置
public string b
{ get; set; }
//设置为null,但在序列化后填充
public string c
{ get; set; }
public string Other
{ get; set; }
public Customer()
{
//
//TODO: 在此处添加构造函数逻辑
//
a = "";
b = "";
c = "";
Other = null;
}
}

2.2 反序列化JSON字符串

//引用序列化、反序列化JSON字符串用到的空间
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
//定义一个JSON字符串
string jsonText = "[{'a':'aaa','b':'bbb','c':'ccc'},{'a':'aaa2','b':'bbb2','c':'ccc2'}]";
//反序列化JSON字符串,将JSON字符串转换成LIST列表
List<Customer> _list = JsonConvert.DeserializeObject<List<Customer>>(jsonText);
//读取列表中的值
Console.WriteLine(_list[].a);
foreach (Customer c in _list)
{
Console.WriteLine(c.c);
}