当然使用LitJson前当然要有LitJson才行!
LitJson.dll下载:https://pan.baidu.com/s/1USWw9SETaxa62QTEU1eXWA 密码: bnyu
LitJson官方GitHub:https://github.com/LitJSON/litjson
然后我们需要两个保存数据的类:
public class Band //一个乐队类
{
public string Name; //乐队名
public int Number; //人数
public Member[] Member; //成员
public Band() //一个空的构造函数
{
}
public Band(string name, int number, Member[] member) //一个带参构造函数
{
Name = name;
Number = number;
Member = member;
}
}
//////////////////////////////////////////////////////////////////////////////////
public class Member //一个成员信息类
{
public string Name; //成员名称
public int Age; //成员名称
public Member() //空的构造函数
{
}
public Member(string name, int age) 带参的构造函数
{
Name = name;
Age = age;
}
}
创建Json文件:
方法一(利用JsonData类):
using LitJson; //引用LitJson
using System.IO;
public class Write{
static void Main(string[] args){
JsonData jsonData = new JsonData(); //无名JsonData对象
jsonData["Name"] = "One Direction"; //乐队名
jsonData["Number"] = 4; //人数
jsonData["Member"] = new JsonData(); //名为Member的JsonData对象,保存成员的对象
JsonData jsonData2 = new JsonData(); //下面创建4个JsonData对象来储存成员数据
jsonData2["Name"] = "Liam";
jsonData2["Age"] = 17;
JsonData jsonData3 = new JsonData();
jsonData3["Name"] = "Harry";
jsonData3["Age"] = 16;
JsonData jsonData4 = new JsonData();
jsonData4["Name"] = "Niall";
jsonData4["Age"] = 17;
JsonData jsonData5 = new JsonData();
jsonData5["Name"] = "Louis";
jsonData5["Age"] = 18;
jsonData["Member"].Add(jsonData2); //将上面的4个成员信息对象加入到Member对象中
jsonData["Member"].Add(jsonData3);
jsonData["Member"].Add(jsonData4);
jsonData["Member"].Add(jsonData5);
string json = jsonData.ToJson(); //将以上数据转为Json格式的文本
string path = "/Test.json"; //这里保存文件的路径
StreamWriter sw = new StreamWriter(path); //利用写入流创建文件
sw.Write(json); //写入数据
sw.Close(); //关闭流
sw.Dispose(); //销毁流
}
}
方法二(利用上面创建的类和JsonMapper):
using LitJson; //引用LitJson
using System.IO;
public class Write2{
static void Main(string[] args){
Member[] member = new Member[] { //创建成员信息数组的对象实例
new Member("Liam",17), //创建4个成员信息对象并赋值
new Member("Harry",16),
new Member("Niall",17),
new Member("Louis",18)
};
Band band = new Band("One Direction", 4, member); //创建一个乐队对象实例并赋值
string json = JsonMapper.ToJson(band); //利用JsonMapper将乐队信息转为Json格式的文本
string path = "/Test2.json"; //保存路径
StreamWriter sw = new StreamWriter(path); //利用写入流创建文件
sw.Write(json); //写入数据
sw.Close(); //关闭流
sw.Dispose(); //销毁流
}
}
使用上面两种方法都可以得到内容为Json格式的文件:
{
"Name": "One Direction",
"Number": 4,
"Member": [
{
"Name": "Liam",
"Age": 17
},
{
"Name": "Harry",
"Age": 16
},
{
"Name": "Niall",
"Age": 17
},
{
"Name": "Louis",
"Age": 18
}
]
}
读取Json文件:
using LitJson; //引用LitJson
using System;
using System.IO;
public class Read{
static void Main(string[] args){
string path = "/Test.json"; //要读取的Json文件的路径
string text = File.ReadAllText(path); //利用File类读取文件中的文本
Band band = JsonMapper.ToObject<Band>(text); //利用JsonMapper将Json的文本转为我们要的Band类数据
Console.WriteLine(band); //读取乐队的名称和人数
Console.WriteLine(band.Name);
Console.WriteLine(band.Number);
foreach (Member item in band.Member) //遍历乐队里的成员信息
{
Console.WriteLine(item.Name); //输出成员名称和年龄
Console.WriteLine(item.Age);
}
}
}
---------------------
作者:ifaswind
原文:https://blog.csdn.net/iFasWind/article/details/80886696