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[1];
//读取对象中的各项值
Console.WriteLine(o["a"]);
Console.WriteLine(ja[1]["a"]);
2.定义对象列表,然后反序列化JSON字符串
先添加一个类,定义一个对象
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;
}
}
反序列化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[1].a);
foreach (Customer c in _list)
{
Console.WriteLine(c.c);
}
3.定义对象列表,然后反序列化JSON字符串
先添加一个类,定义一个对象
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
public class JobInfo
{
public string TaskRoleSpaces { get; set; }
public string TaskRoles { get; set; }
public string ProxyUserID { get; set; }
public string UserID { get; set; }
public string UserName { get; set; }
public string UserSystemName { get; set; }
public string OperationName { get; set; }
public string OperationValue { get; set; }
public string OperationValueText { get; set; }
public DateTime SignDate { get; set; }
public string Comment { get; set; }
public string FormDataHashCode { get; set; }
public string SignatureDivID { get; set; }
}
反序列化JSON字符串
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
string json = @"[{'TaskRoleSpaces':'','TaskRoles':'','ProxyUserID':'5d9ad5dc1c5e494db1d1b4d8d79b60a7','UserID':'5d9ad5dc1c5e494db1d1b4d8d79b60a7','UserName':'姓名','UserSystemName':'2234','OperationName':'送合同负责人','OperationValue':'同意','OperationValueText':'','SignDate':'2013-06-19 10:31:26','Comment':'同意','FormDataHashCode':'','SignatureDivID':''},{'TaskRoleSpaces':'','TaskRoles':'','ProxyUserID':'2c96c3943826ea93013826eafe6d0089','UserID':'2c96c3943826ea93013826eafe6d0089','UserName':'姓名2','UserSystemName':'1234','OperationName':'送合同负责人','OperationValue':'同意','OperationValueText':'','SignDate':'2013-06-20 09:37:11','Comment':'同意','FormDataHashCode':'','SignatureDivID':''}]";
List<JobInfo> jobInfoList = JsonConvert.DeserializeObject<List<JobInfo>>(json);
foreach (JobInfo jobInfo in jobInfoList)
{
Console.WriteLine("UserName:" + jobInfo.UserName + "UserID:" + jobInfo.UserID);
}
需要借助了Newtonsoft.Json.dll这个工具