介绍

在Unity开发过程中,Json是比较常用的一种数据存储文本,尤其是在和第三方交互中,基本都是json格式。 先给出一个Json示例,我们来看看是如何解析的。

{

"Player": [

{

"id": 1001,

"name": "王二",

"job": 1

},

{

"id": 1002,

"name": "小红",

"job": 2

},

{

"id": 1003,

"name": "刚子",

"job": 3

}

]

}

方法一:JsonUtility

JsonUtility是Unity内置的用于解析Json的方法

序列化:ToJson() 反序列化:FromJson<>()

首先需要定义解析后的实体类

[System.Serializable]

public class PlayerData

{

//玩家ID

public int id;

//玩家名字

public string name;

//玩家职业

public int job;

}

[System.Serializable]

public class Data

{

public PlayerData[] Player;

}

解析代码如下

void Start()

{

//加载资源

TextAsset obj = Resources.Load("player" );

if (obj != null)

{

//解析

Data m_Data = JsonUtility.FromJson(obj.text);

//打印

foreach (PlayerData item in m_Data.Player)

{

Debug.Log("ID:"+item.id + " Name:" + item.name + " Job:" + item.job);

}

}

}

方法二:LitJson

需要:LitJson插件 下载链接:LitJson资源下载 序列化:ToJson() 反序列化:ToObject<>()

void Start()

{

//加载资源

TextAsset obj = Resources.Load("player" );

if (obj != null)

{

//使用JsonMapper.ToObject解析

Data m_Data = JsonMapper.ToObject(obj.text);

//打印

foreach (PlayerData item in m_Data.Player)

{

Debug.Log("ID:"+item.id + " Name:" + item.name + " Job:" + item.job);

}

}

}

方法三:Newtonsoft

需要:Newtonsoft.Json.dll 下载链接:Newtonsoft.Json.dll 序列化:SerializeObject() 反序列化:DeserializeObject<>()

void Start()

{

//加载资源

TextAsset obj = Resources.Load("player" );

if (obj != null)

{

//JsonConvert.DeserializeObject

Data m_Data = JsonConvert.DeserializeObject(obj.text);

//打印

foreach (PlayerData item in m_Data.Player)

{

Debug.Log("ID:"+item.id + " Name:" + item.name + " Job:" + item.job);

}

}

打印结果

推荐链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: