LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C#解析JSON

freeflydom
2023年10月27日 15:28 本文热度 444

1. JSON对象解析,只包含一层对象{}

JSON文本:

{

    "name":"张三",

    "name_en":"zhangssan"

}

解析代码如下:

string jsonText = "{\"name\":\"张三\",\"name_en\":\"zhangssan\"}";

//解析对象JObject 

JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);

//获取此对象key="name"和key="name_en"的值

string zone = jo["name"].ToString();

string zone_en = jo["name_en"].ToString();

Console.WriteLine(zone);

Console.WriteLine(zone_en);

2. 嵌套JSON对象解析,包含多层对象{}

JSON文本:

{

    "allname":{

        "name":"张三",

        "name_en":"zhangsan"

    }

}

解析代码如下:

string jsonText = "{\"allname\":{\"name\":\"张三\",\"name_en\":\"zhangsan\"}}";

//解析对象JObject

JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);

//获取此对象中key="allname"下key="name"的值

string zone = jo["allname"]["name"].ToString();

string zone_en = jo["allname"]["name_en"].ToString();

Console.WriteLine(zone);

Console.WriteLine(zone_en);

3. JSON数组解析1(数组循环遍历)

JSON文本:

[

    {

        "a":"a1",

        "b":"b1"

    },

    {

        "a":"a2",

        "b":"b2"

    }

]

解析代码如下:

string jsonArrayText = "[{\"a\":\"a1\",\"b\":\"b1\"},{\"a\":\"a2\",\"b\":\"b2\"}]"; 

//解析数组JArray

JArray jArray = (JArray)JsonConvert.DeserializeObject(jsonArrayText);

//循环获取数组中的内容

for(int i = 0; i < jArray.Count; i++)

{

    //解析对象JObject

     JObject j = JObject.Parse(jArray[i].ToString());

    //获取此对象key="a"的值

    string a = j["a"].ToString();

    Console.WriteLine(a);

}

4. JSON数组解析2(使用index获取数据,index从0开始计算)

JSON文本:

[

    {

        "a":"a1",

        "b":"b1"

    },

    {

        "a":"a2",

        "b":"b2"

    }

]

解析代码如下:

string jsonArrayText = "[{\"a\":\"a1\",\"b\":\"b1\"},{\"a\":\"a2\",\"b\":\"b2\"}]";   

//解析数组JArray           

JArray jArray = (JArray)JsonConvert.DeserializeObject(jsonArrayText);

//获取数组jArray中第1个(从第0开始计算)key="a"的值

string str = jArray[1]["a"].ToString();

Console.WriteLine(str);

5. JSON 对象中的数组,一层对象{}中包含数组[]

JSON文本:

{

    "name":"网站",

    "num":3,

    "sites":[

        "Google",

        "Runoob",

        "Taobao"

    ]

}

解析代码如下:

string jsonText = "{\"name\":\"网站\",  \"num\":3,  \"sites\":[\"Google\",\"Runoob\",\"Taobao\"]}";

//解析对象JObject

JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);

string sites = jo["sites"].ToString();

//解析数组JArray

JArray jArray = (JArray)JsonConvert.DeserializeObject(sites);

//获取数组sites jArray中第0个(从第0开始计算)的值

string sitesdetails = jArray[0].ToString();

Console.WriteLine(sitesdetails);

6. 嵌套 JSON 对象中的数组,多层对象{}包含数组[]

JSON文本:

{

    "name":"网站",

    "num":2,

    "sites": [

        { "name":"Google", "info":[ "Android", "Google 搜索", "Google 翻译" ] },

        { "name":"Taobao", "info":[ "淘宝", "网购" ] }

    ]

}

解析代码如下:

string jsonText = "{\"name\":\"网站\",\"num\":2,\"sites\":[{\"name\":\"Google\",\"info\":[\"Android\",\"Google搜索\",\"Google翻译\"]},{\"name\":\"Taobao\",\"info\":[\"淘宝\",\"网购\"]}]}";

//解析对象JObject

JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);

string sites = jo["sites"].ToString();

//解析数组JArray

JArray jArray = (JArray)JsonConvert.DeserializeObject(sites);

//循环遍历sites数组

for (int i = 0; i < jArray.Count; i++)

{

  //解析对象JObject

  JObject j = JObject.Parse(jArray[i].ToString());

  string info = j["info"].ToString();

  //解析数组JArray

  JArray jArray2 = (JArray)JsonConvert.DeserializeObject(info);

  //循环遍历info数组

  for (int k = 0; k < jArray2.Count; k++)

  {

    Console.WriteLine(jArray2[k]);

  }

}

查看原文


该文章在 2023/10/27 15:28:26 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved