小企业网站如何建设好,最新国际军事新闻最新消息,手机公司网站建设比较好的,成都网站改版优化https://blog.csdn.net/weixin_43046974/article/details/131449900
C#解析JSON
1. JSON定义2. JSON一般构成及解析方法3. 解析举例子 1. JSON对象解析#xff0c;只包含一层对象{}2. 嵌套JSON对象解析#xff0c;包含多层对象{}3. JSON数组解析1#xff08;数组循环遍历只包含一层对象{}2. 嵌套JSON对象解析包含多层对象{}3. JSON数组解析1数组循环遍历4. JSON数组解析2使用index获取数据index从0开始计算5. JSON 对象中的数组一层对象{}中包含数组[]6. 嵌套 JSON 对象中的数组多层对象{}包含数组[] 1. JSON定义
全称“JavaScript Object NotationJavaScript对象表示法”JSON 是存储和交换文本信息的语法。
举例
[{id: 2,name: 星河爆破,number: 999},{id: 3,name: 九星连珠,number: 9},{id: 4,name: 一语成谶,number: 999}
]学习JSON基础教程学习JSON基础教程 在线JSON解析及格式化验证网站在线JSON解析及格式化验证网站
2. JSON一般构成及解析方法
JSON序列化与反序列化
JSON序列化将对象转换成JSON 字符串 JSON反序列化将JSON 字符串转换成对象
JSON结构2种 1对象结构{}
{key1:value1,key2:value2...}
key的数据类型字符串value的数据类型字符串、数值、null、json数组[]、json对象{}2数组结构[]
JSON数组结构[value1value2......]
value的数据类型字符串、数值、null、json数组[]、json对象{}C#代码解析JSON 可使用Visual Studio调试代码使用C#中的Newtonsoft库来解析JSON添加引用
using Newtonsoft.Json
using Newtonsoft.Json.Linq解析规则重要
针对对象结构{}使用JObject解析 针对数组结构[]使用JArray解析
3. 解析举例子
1. JSON对象解析只包含一层对象{}
JSON文本
{name:张三,name_en:zhangssan
}解析代码如下
string jsonText {\name\:\张三\,\name_en\:\zhangssan\};
//解析对象JObject
JObject jo (JObject)JsonConvert.DeserializeObject(jsonText);
//获取此对象keyname和keyname_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);
//获取此对象中keyallname下keyname的值
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)
{//解析对象JObjectJObject j JObject.Parse(jArray[i].ToString());//获取此对象keya的值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开始计算keya的值
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)
{//解析对象JObjectJObject j JObject.Parse(jArray[i].ToString());string info j[info].ToString();//解析数组JArrayJArray jArray2 (JArray)JsonConvert.DeserializeObject(info);//循环遍历info数组for (int k 0; k jArray2.Count; k){Console.WriteLine(jArray2[k]);}