Json文档中有多个属性,其中一个属性包含一个数组的解析

这篇博客介绍如何解析一个Json文档,其中有一个属性是一个数组。通过自定义`Skill`和`Player`类来映射Json数据,并使用LitJson库进行解析。示例展示了如何读取Json文件并打印出玩家的详细信息以及其技能列表。

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

1.首先自定义一个Json文本文件

{
"Name":"cc",
"Level":8,
"Age":18,
"SkillList":[
  {
    "Id": 3,
    "Name": "天下无贼",
    "Damage": 123
  },
  {
    "Id": 4,
    "Name": "空格",
    "Damage": 150
  },
  {
    "Id": 5,
    "Name": "流星",
    "Damage": 200
  }
]
}

2.我们需要定义一个与文本文件相对应的两个类:有一个与数组相对应

(1)与数组对应<类名叫Skill>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace MyJson
{
    class Skill
    {
        public int Id;
        public string Name;
        public int Damage;
        public override string ToString()
        {
            return string.Format("id:{0}  name:{1}   damage{2}",Id,Name,Damage);
        }  
}
}

(2)与整个Json文本文件对应<类名叫Player>


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace MyJson
{
    class Player
    {
        public string Name { get; set; }
        public int Level { get; set; }
        public int Age { get; set; }
        public List<Skill> SkillList { get; set; }
        public override string ToString()
        {
            return string.Format("Name:{0} Level:{1} Age:{2}  skillList:{3}",Name,Level,Age,SkillList);
        }
    }
}

3.开始解析

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using LitJson;
using System.IO;


namespace MyJson
{
    class Program
    {
        static void Main(string[] args)
        {
            Player p = JsonMapper.ToObject<Player>(File.ReadAllText("MyJson2.txt"));
            Console.WriteLine(p);
            foreach (Skill item in p.SkillList)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值