赞
踩
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。
JsonUtility:JsonUtility是Untiy5.3后新增的内容,有时会出现莫名其妙的错误:
JsonUtility.FromJson():把json字符串转成对象.
JsonUtility.ToJson():把对象转成json字符串.
LitJson:LitJson是一个Json的开源项目,这个比较稳定,推荐使用:
JsonMapper.ToObject():把json字符串转成对象.
JsonMapper.ToJson():把对象转成json字符串.
官网下载:http://www.json.org/json-zh.html
放到Unity3d中的Plugin文件夹内
使用的话要注意引入命名空间
纯数组的Json数据比较简单,在这个Demo中Json数据是一个对象,对象内有一个数组.分别需要用到一个Json对象模型(JsonObjectModel)和一个Json数组模型(JsonArrayModel)来接收这两种Json数据:
- {
- "infoList": [
- {
- "panelTypeString": "ItemMessage",
- "path": "UIPanel/ItemMessagePanel"
- },
- {
- "panelTypeString": "Knapsack",
- "path": "UIPanel/KnapsackPanel"
- },
- {
- "panelTypeString": "MainMenu",
- "path": "UIPanel/MainMenuPanel"
- },
- {
- "panelTypeString": "Shop",
- "path": "UIPanel/ShopPanel"
- },
- {
- "panelTypeString": "Skill",
- "path": "UIPanel/SkillPanel"
- },
- {
- "panelTypeString": "System",
- "path": "UIPanel/SystemPanel"
- },
- {
- "panelTypeString": "Task",
- "path": "UIPanel/TaskPanel"
- }
- ]
- }
- public class JsonObjectModel
- {
- //JsonArrayModel类型的列表
- public List<JsonArrayModel> infoList;
-
- }
- public class JsonArrayModel
- {
- //对应Json中属性 名字要一样
- public string panelTypeString;
- public string path;
- }
- public class JsonDeserialize : MonoBehaviour
- {
- void Start( )
- {
- //获取Json文件
- TextAsset jsonData = Resources.Load<TextAsset>("JsonData");
-
- JsonObjectModel jsonObject = JsonMapper.ToObject<JsonObjectModel>(jsonData.text);
-
- foreach (var info in jsonObject.infoList)
- {
- Debug.Log(info.panelTypeString+" "+info.path);
- }
-
- }
- }
链接:http://pan.baidu.com/s/1jHVP9m2 密码:e9h8
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。