c# 读取、写入json文件
简介
使用 官方的 json net包进行操作
Newtonsoft.Json
json文件
{
"animals":{
"dog":[
{"name":"Rufus","breed":"labrador","count":1,"twoFeet":false},
{"name":"Marty","breed":"whippet","count":1,"twoFeet":false}
],
"cat":{"name":"Matilda"}
}
}
c# json class
namespace json_li
{
public class DogItem
{
public string name { get; set; }
public string breed { get; set; }
public int count { get; set; }
public string twoFeet { get; set; }
}
public class Cat
{
public string name { get; set; }
}
public class Animals
{
public List<DogItem> dog { get; set; }
public Cat cat { get; set; }
}
public class Root
{
public Animals animals { get; set; }
}
}
写入
Cat ru = new Cat(); //生成新的类
Animals ff = new Animals(); //子节点生成新的类
ru.name = "daing"; //赋值
ff.cat = ru; //类赋值
string jsondata = JsonConvert.SerializeObject(ff); //class类转string
using (StreamWriter sw = new StreamWriter("F://c#//c#_program//json_li//config.json")) //将string 写入json文件
{
sw.WriteLine(jsondata);
}
读取
string datacache;
using(StreamReader r1 = new StreamReader("F://c#//c#_program//json_li//config.json"))//读取json文件
{
string line; //定义string,读取每一行数据
while((line = r1.ReadLine())!= null) //循环将每一行数据拼接为一个完整的字符串
{
datacache = datacache + line; //拼接
}
Root rt = JsonConvert.DeserializeObject<Root>(datacache); //将string转换为class类,从而达到json文件转换的目的