需求:有以下json数组字符串
[{"user_acc":"123","user_password":"123","user_name":"张飞","user_workcell":"JW007","user_role_id":1,},
{"user_acc":"admin","user_password":"1","user_name":"系统管理员","user_workcell":"Jw007","user_role_id":1,},
{"user_acc":"manager","user_password":"1","user_name":"经理","user_workcell":"JW007","user_role_id":2,},
{"user_acc":"operator1","user_password":"1","user_name":"初级用户","user_workcell":"JW007","user_role_id":5,},
{"user_acc":"operator2","user_password":"1","user_name":"高级用户","user_workcell":"JW007","user_role_id":4,},
{"user_acc":"supervisor","user_password":"1","user_name":"监管员","user_workcell":"JW007","user_role_id":3}]
需要将以上json数组字符串转化为相应的list
解决思路:先定义json数组中json对象的相关类,然后使用NuGet包的Newtonsoft工具类将json数组字符串转化为相应对象的List
1.定义json对象的相关类
这里有一个根据json对象快速生成相应类的在线工具:http://tool.chinaz.com/tools/json2entity.aspx,直接将json数组字符串中的一个json对象字符串放入其中即可生成对应类
json对象对应类代码如下:
public class Root
{
/// <summary>
/// supervisor
/// </summary>
public string user_acc { get; set; }
/// <summary>
/// 1
/// </summary>
public string user_password { get; set; }
/// <summary>
/// 监管员
/// </summary>
public string user_name { get; set; }
/// <summary>
/// JW007
/// </summary>
public string user_workcell { get; set; }
/// <summary>
/// User_role_id
/// </summary>
public int user_role_id { get; set; }
}
2.下载引用Newtonsoft工具
(1)点击visual studio的工具-》NuGet
(2)在搜索框输入Newtonsoft,然后下载安装到你的项目中即可
我已经安装了,这里只是演示
3.将json数组字符串转化为List
由于上面的字符串包含很多引号,为方便演示,我将其赋值为一个string变量,需要进行转义,这里同样可以使用在线工具进行压缩转义:http://tool.chinaz.com/tools/jsonescape.aspx
附上转化的代码:
static void Main(string[] args)
{
string jsonArrayStr = "[{\"user_acc\":\"123\",\"user_password\":\"123\",\"user_name\":\"张飞\",\"user_workcell\":\"JW007\",\"user_role_id\":1,},{\"user_acc\":\"admin\",\"user_password\":\"1\",\"user_name\":\"系统管理员\",\"user_workcell\":\"Jw007\",\"user_role_id\":1,},{\"user_acc\":\"manager\",\"user_password\":\"1\",\"user_name\":\"经理\",\"user_workcell\":\"JW007\",\"user_role_id\":2,},{\"user_acc\":\"operator1\",\"user_password\":\"1\",\"user_name\":\"初级用户\",\"user_workcell\":\"JW007\",\"user_role_id\":5,},{\"user_acc\":\"operator2\",\"user_password\":\"1\",\"user_name\":\"高级用户\",\"user_workcell\":\"JW007\",\"user_role_id\":4,},{\"user_acc\":\"supervisor\",\"user_password\":\"1\",\"user_name\":\"监管员\",\"user_workcell\":\"JW007\",\"user_role_id\":3}]";
List<Root> rbList = JsonConvert.DeserializeObject<List<Root>>(jsonArrayStr);
foreach (var rb in rbList)
{
Console.WriteLine(rb.user_acc);
}
Console.ReadKey();
}
(测试只输出了转化后list中对象的user_acc值,表明已转化成功)
运行程序,控制台执行结果如下
参考:
c#解析json字符串处理