Json文件解析

本文介绍JSON数据格式的特点及使用LitJson工具包进行JSON文件的创建、解析与转换的方法。包括如何将JSON数据映射为C#对象以及如何将C#对象序列化为JSON格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,用于存储和交换文本信息。它比XML更小、更快、更易解析。  

     JSON语法规则:

  • 数据在键值对中
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

    JSON值可以是:

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true或false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null

1.引入LitJson工具包

   右键工程 - NuGet包管理器 - 搜索LitJson - 点击安装。

2.创建Json文件

   创建名称是"TextFile1.txt"的文档,设置属性“复制到输出目录 - 如果较新则复制”。在工程运行时,会自动将该txt文件复制到bin下面。

[
{"ID":201801,"Name":"April","Level":2},
{"ID":201802,"Name":"Harris","Level":3}
]

3. 解析Json文件

3.1 JsonMapper 

     JsonMapper.ToObject()实现解析。

class Program
{
    static void Main(string[] args)
    {
        JsonData jsonData = JsonMapper.ToObject(File.ReadAllText("TextFile1.txt"));
        List<Student> students = new List<Student>();
        foreach (JsonData item in jsonData)
        {
            JsonData IDvalue = item["ID"];
            JsonData NameValue = item["Name"];
            JsonData Levelvalue = item["Level"];

            Student student = new Student()
            {
                ID = Int32.Parse(IDvalue.ToString()),
                Name = NameValue.ToString(),
                Level = Int32.Parse(Levelvalue.ToString())
            };
            students.Add(student);
        }
        foreach (var item in students)
        {
            Console.WriteLine(item);
        }

        Console.ReadKey();
    }
}

 运行结果

  

3.2 泛型JsonMapper

   将List<Student>作为类型传入JsonMapper,可以得到和3.1相同的结果。

static void Main(string[] args)
{
    //使用泛型解析Json          
    List<Student> students = JsonMapper.ToObject<List<Student>>(File.ReadAllText("TextFile1.txt"));
    foreach (var item in students)
    {
        Console.WriteLine(item);
    }
}

  当然,将List<Student>换成Student[],也是可以的。

static void Main(string[] args)
{
    //使用泛型解析Json          
    Student[] students = JsonMapper.ToObject<Student[]>(File.ReadAllText("TextFile1.txt"));
    foreach (var item in students)
    {
        Console.WriteLine(item);
    }
}

运行结果

4. 将对象转化为Json

   使用JsonMapper.ToJson()实现从对象到Json的转化。

static void Main(string[] args)
{
    //将对象转化为Json格式
    Student stu = new Student()
    {
        ID = 201803,
        Name = "Amy",
        Level = 4
    };
    string stuJson = JsonMapper.ToJson(stu);
    Console.WriteLine(stuJson);
}

运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值