1、创建Json(JObject、JArray)
var people1 = new JObject();
people1["age"] = 10;
people1 ["name"]="小安";
Console.WriteLine(people1);
var people2 = new JObject();
people2["age"] = 20;
people2["name"] = "小李";
var peoples = new JArray();
peoples.Add(people1);
peoples.Add(people2);
Console.WriteLine(peoples );
var json = new JObject();
json["peoples"] = peoples;
Console.WriteLine(json);
输出:
{
"age": 10,
"name": "小安"
}
[
{
"age": 10,
"name": "小安"
},
{
"age": 20,
"name": "小李"
}
]
{
"peoples": [
{
"age": 10,
"name": "小安"
},
{
"age": 20,
"name": "小李"
}
]
}
2、对象和json字符串互相转换
using Newtonsoft.Json;
class Student
{
public String Name { get; set; }
public int Age { get; set; }
}
```csharp
Student student = new Student() { Name = "小明", Age = 18 };
string jsonStr = JsonConvert.SerializeObject(student, Formatting.Indented);
File.WriteAllText("2.dat", jsonStr);
string readStr = File.ReadAllText("2.dat");
Student getString = JsonConvert.DeserializeObject<Student>(readStr);
2.dat的内容如下:
```csharp
{
"Name": "小明",
"Age": 18
}
注意事项:JsonConvert.SerializeObject这个方法中的第二个参数是一个Formatting类型的枚举,这个枚举有两个值,一个是
1)Formatting.Indented
这个方法会将对象生成的Json字符串含有\r\n,这样最后字符串很有层次性
2)Formatting.None
这个方法会将对象生成的Json字符串去掉了回车,空格,换行,最后的字符串全部连接在一起,没有层次性。