首页 前端知识 【Unity】读取Json的三种方法(JsonUtility,LitJson,Newtonsoft)

【Unity】读取Json的三种方法(JsonUtility,LitJson,Newtonsoft)

2024-05-27 09:05:37 前端知识 前端哥 807 257 我要收藏

介绍

在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<TextAsset>("player" );
if (obj != null)
{
//解析
Data m_Data = JsonUtility.FromJson<Data>(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<TextAsset>("player" );
if (obj != null)
{
//使用JsonMapper.ToObject解析
Data m_Data = JsonMapper.ToObject<Data>(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<TextAsset>("player" );
if (obj != null)
{
//JsonConvert.DeserializeObject
Data m_Data = JsonConvert.DeserializeObject<Data>(obj.text);
//打印
foreach (PlayerData item in m_Data.Player)
{
Debug.Log("ID:"+item.id + " Name:" + item.name + " Job:" + item.job);
}
}
复制

打印结果

在这里插入图片描述

转载请注明出处或者链接地址:https://www.qianduange.cn//article/9670.html
标签
servletunity
评论
还可以输入200
共0条数据,当前/页
发布的文章

JQuery中的load()、$

2024-05-10 08:05:15

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!