【Unity&JSON】(转载)豆豆酱学C#笔记之Newtonsoft.Json(三)
原文地址:豆豆酱学C#笔记之Newtonsoft.Json(三)
今天小贱继续讲Newtonsoft.Json的使用。之前讲了Json与Xml、类的互相转换,当然功能不仅仅只有这些,下面就提到另几个转换。下面的例子都需要引用Newtonsoft.Json这个库。
using Newtonsoft.Json; // Newtonsoft.Json引用
1.将字典转换成Json字符串
// Newtonsoft.Json测试
private static void JsonTest()
{
// 创建一个字典
Dictionary<string, int> dic = new Dictionary<string, int>
{
{ "James", 9001 },
{ "Jo", 3474 },
{ "Jess", 11926 }
};
// 将字典转换成Json字符串
string json = JsonConvert.SerializeObject(dic);
Console.WriteLine(json);
}
我们看下运行的结果:
![]()
是不是很简单?如果看过我之前一篇文章的朋友,是不是有似曾相识的感觉?没错,用的是同一个函数JsonConvert.SerializeObject(),接下我们还会用到它,现在先放着。我们说说这个函数的另一个参数Formatting,也就是Json字符串显示的格式。我们在函数中添加一个参数Formatting.Indented,看看结果又什么不同。
![]()
是不是比上面的结果更加直观了?这个用法在要将Json字符串记录到文档中十分有效。
2.Json字符串转换成字典
// Newtonsoft.Json测试
private static void JsonTest()
{
// 创建一个字典
Dictionary<string, int> dic = new Dictionary<string, int>
{
{ "James", 9001 },
{ "Jo", 3474 },
{ "Jess", 11926 }
};
// 将字典转换成Json字符串
string json = JsonConvert.SerializeObject(dic, Formatting.Indented);
Console.WriteLine(json + "\n");
// 创建一个新的字典保存结果
Dictionary<string, int> newDic = JsonConvert.DeserializeObject<Dictionary<string, int>>(json);
// 打印字典中元素数量
Console.WriteLine(newDic.Count);
}
我们将前面的代码修改一下,之前得到的Json作为参数使用。来观察下结果:
![]()
3.集合转换成Json字符串
// Newtonsoft.Json测试
private static void JsonTest()
{
// 创建一个集合
List<string> list = new List<string>(){
"James",
"Jo",
"Jess"
};
// 将集合转换成Json字符串
string json = JsonConvert.SerializeObject(list, Formatting.Indented);
Console.WriteLine(json);
}
![]()
这是一个一阶的集合,如果是多阶的呢?我们来试试:
// Newtonsoft.Json测试
private static void JsonTest()
{
// 创建一个集合
List<List<string>> list = new List<List<string>>{
new List<string>{"James","Jo","Jess"},
new List<string>{"1001","1002","1003"}
};
// 将集合转换成Json字符串
string json = JsonConvert.SerializeObject(list, Formatting.Indented);
Console.WriteLine(json);
}
![]()
看来也是可以实现的{:94:}
4.Json字符串转换成集合
// Newtonsoft.Json测试
private static void JsonTest()
{
// 创建一个集合
List<List<string>> list = new List<List<string>>{
new List<string>{"James","Jo","Jess"},
new List<string>{"1001","1002","1003"}
};
// 将集合转换成Json字符串
string json = JsonConvert.SerializeObject(list, Formatting.Indented);
Console.WriteLine(json + "\n");
// 创建一个新集合储存结果
List<List<string>> newList = JsonConvert.DeserializeObject<List<List<string>>>(json);
foreach (List<string> child0 in newList)
{
foreach (string child1 in child0)
{
Console.WriteLine(child1);
}
}
}
还是用前一个实验的结果来作这个实验的参数,然后遍历出集合中的结果。
![]()
OK啦!超方便的吧!今天的笔记OVER,吃饭吃饭!
posted on 2016-12-27 17:36 BuladeMian 阅读(275) 评论(0) 收藏 举报
浙公网安备 33010602011771号