.net mvc——将json数组字符串转化为List(反序列化)

需求:有以下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字符串处理

发布了68 篇原创文章 · 获赞 12 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_35077107/article/details/104270206