Newtonsoft.Json是.net框架下使用率比较高的操作json的开源工具库。
一、获取Newtonsoft.Json.dll
下载地址:https://github.com/JamesNK/Newtonsoft.Json/releases
Code source:https://github.com/JamesNK/Newtonsoft.Json
可以去以上地址下载和查看开源代码,也可以根据情况在Visual studio里使用NuGet包管理器获取
不论使用什么方式获取得到都是Newtonsoft.Json.dll这个文件将其引入项目中(这里我选用了Newtonsoft.Json.10.0.1这个版本)
二、JSON序列化和JSON反序列化
用到比较多的功能是JSON序列化和JSON反序列化
项目中引用using Newtonsoft.Json;
序列化使用了JsonConvert.SerializeObject(object, new JsonSerializerSettings() {ReferenceLoopHandling=ReferenceLoopHandling.Ignore});
反序列化使用了JsonConvert.DeserializeObject(jsonString, Type type);
三、简单的测试
新建两个类Test1和Test2
class Test1
{
public string AA { get; set; }
public int BB { get; set; }
public string CC { get; set; }
[JsonIgnore()]//序列化时忽略
public string DD { get; set; }
}
class Test2
{
[JsonProperty(PropertyName ="AA")]//序列化的字段名称
public string A8 { get; set; }
[JsonProperty(PropertyName = "BB")]
public int BV { get; set; }
public string CC { get; set; }
}
开始序列化和反序列化
Test1 ob = newTest1() { AA = "hello", BB = 100, CC = "world", DD ="how are you" };
//序列化
string jsonString= JsonConvert.SerializeObject(ob, newJsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore});
// jsonString结果("{\"AA\":\"hello\",\"BB\":100,\"CC\":\"world\"}")
//反序列化
Test2 dt=JsonConvert.DeserializeObject(jsonString, typeof(Test2))as Test2;
Test1 dt1 =JsonConvert.DeserializeObject(jsonString, typeof(Test1)) as Test1;
结果OK
四、小结
根据需要可以把序列化和反序列化操作封装成一个统一的方法比较方便使用,Newtonsoft.Json里面还有许多设置和属性技巧可以慢慢探索。