1. 什么是Json
全称JavaScript Object Notation,一种数据格式的标准规范,起初来源于JavaScript这门语言,后来随着使用的广泛,几乎每门开发语言都有处理JSON的API。
优点:易于人的阅读和编写,易于程序解析与生产。
2. .Net 解析Json
如果你的程序需要处理从外部读取json文件中的数据供程序使用,可以借鉴.net中的第三方lib
.Net 语言中有多重处理json的方式,本文记录如何使用Newtonsoft.Json处理json
3. 处理场景
外部解析json文件
{
"xx1":[
{
"aa":"open",
"bb":"file.txt"
},
{
"aa":"open",
"bb":"fil&e"
}
],
"xx2":[
{
"aa":"http://127.0.0.1",
"bb": "http://127.0.0.1"
}
]
}
处理示例
public static Newtonsoft.Json.Linq.JArray Readjson(string key)
{
string jsonfile = "c:\\xxx\\case.json";//JSON文件路径
System.IO.FileStream file = new FileStream(jsonfile, FileMode.Open, FileAccess.Read);
byte[] buffur = new byte[file.Length];
file.Read(buffur, 0, (int)file.Length);
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
string jsonstr = encoding.GetString(buffur);
JObject jo = (JObject)JsonConvert.DeserializeObject(jsonstr);
JArray jar = JArray.Parse(jo[key].ToString());
return jar;
}
测试结果:
public void Test_array)
{
Newtonsoft.Json.Linq.JArray case_list = Readjson("xx1");
for (var i = 0; i < case_list.Count; i++)
{
JObject j = JObject.Parse(case_list[i].ToString());
string aa= j["aa"].ToString();
string bb = j["bb"].ToString();
Console.WriteLine("[{0}],[{1}]", aa, bb);
}
输出如:
[open],[file.txt]