[C#] 利用LitJson进行Json文件的创建和读取

当然使用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);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/iFasWind/article/details/80886696
今日推荐