新建工程 Json解析 :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using LitJson;
using System.IO;
namespace Json解析
{
class Program
{
static void Main(string[] args)
{
List skilllist = new List();
#region MyRegion
使用litjson进行解析json文本
两种引入litjson的方法
1,去官网下载 然后添加引用json 2,在 引用右键单击 管理NuGet程序包 下载
我们使用jsonMapper去解析json文本
jsondata对象代表一个数组或者一个对象
在这里jsonData 代表数组
//JsonData jsonData = JsonMapper.ToObject(File.ReadAllText("json技能信息.json"));
//foreach (JsonData temp in jsonData) //temp 代表一个对象
//{
// JsonData idValue = temp["id"];// 通过字符串所引器可以取得键值对
// JsonData nameValue = temp["name"];// 通过字符串所引器可以取得键值对
// JsonData damaageValue = temp["damage"];// 通过字符串所引器可以取得键值对
// int id = Int32.Parse(idValue.ToString());
// int damage = Int32.Parse(damaageValue.ToString());
// Skill skill = new Skill();
// skill.id = id;
// skill.damage = damage;
// skill.name = nameValue.ToString();
// skilllist.Add(skill);
//}
//foreach (var item in skilllist)
//{
// Console.WriteLine(item);
//}
//Console.ReadKey();
#endregion
//使用泛型 去解析json
//json里面对象的键必须跟定义类型里面的字段或者属性对应要与Skill类中的值对应上保持一致
Skill[] skillArray = JsonMapper.ToObject(File.ReadAllText("json技能信息.json"));
foreach (Skill item in skillArray)
{
Console.WriteLine(item);
}
Console.ReadKey();
}
}
}
新建 json文件 改为较心则复制
[
{"id":2,"name":"天下无双","damage":123},
{"id":3,"name":"天下无贼","damage":133},
{"id":4,"name":"咫尺天涯","damage":124}
]
新建一个 Skill类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Json解析
{
class Skill
{
public int id;
public string name;
public int damage;
public override string ToString()
{
return string.Format(id + " " + name+" "+ damage);
}
}
}
新建一个角色信息类 角色信息.json 较新则复制
{
"Name": "Shiki",
"Level": 99,
"Age":18
"SkillList": [
{"id":2,"name":"天下无双","damage":123},
{"id":3,"name":"天下无贼","damage":133},
{"id": 4,"name": "咫尺天涯",damage":133}} ]
}
Player 角色类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Json解析
{
class Player
{
public string Name{ get; set; } //字段要跟属性名 要跟json里面的对应
public int Level { get; set; }
public int Age { get; set; }
public List
public override string ToString()
{
return string.Format("name:{0},lerve:{1},Age:{2},SkillList:{3}",Name,Level ,Age,SkillList);
}
}
}
//利用 Player解析角色信息类
Player p = JsonMapper.ToObject
Console.WriteLine(p);
foreach (var item in p.SkillList)
{
Console.WriteLine(item);
}
//Player p = new Player(); 利用角色类转换成json
//p.Name = "花千骨";
//p.Level = 2;
//p.Age = 22;
//string jiso = JsonMapper.ToJson(p);
//Console.WriteLine(jiso);
Console.ReadKey();