Kalet的技术文档 Kalet的技术文档,涉及.NET、Andriod、Arduino、Python的软件开发,所有资料均从网络复制,版权归原著者所有。

[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);
        }
    }
}
 
---------------------
作者:ifaswind
原文:https://blog.csdn.net/iFasWind/article/details/80886696  

Tags: C# JSON

发布: Kalet 分类: C#、C++ 评论: 0 浏览: 253
留言列表