一.认识JSON
1.1 Json概述
- JSON(JavaScript Object Notation,JavaScript对象表示法)
- JSON和XML是比较雷同的技术,都是用来存储文本信息数据的;相对而言,JSON比XML体积更小巧,但是易读性不如XML。
- JSON是轻量级的文本数据交换格式,可以用于服务器和客户端之间的数据传输的载体;XML也是可以完成这个任务的。
- JSON和XML一样并不是哪一门语言的专属技术,而是通用的,几乎所有编程语言都可以操作和利用JSON,XML相关的数据文件。
- JSON可用于数据存储:以文本文件情势存在于客户端,作为静态数据源利用
- JSON可用于数据传输:服务端将数据以JSON数据的格式传输给客户端,客户端解析后利用
1.2 JSON示例
压缩格式:
[{"id": "15", "name":" eter"}, {"id": "12"}]
解析格式:
[
{
"id": "15",
"name": " eter"
},
{
"id": "12"
}
]
收集几个解析网站:
https://www.json.cn/jsononline/
https://www.jsonla.com/
1.3 json语法注意事项
1.当有多个数据对象时,最外层用[]包裹,表示是一个数组;
2.每一对{}表示一个独立的数据对象;
3.json对象内的数据,以键值对的情势存在;
4.json中字符串需要以“”包裹;
5.json中需要用逗号进行数据分割,且最后位置不需要逗号;
二.Unity内利用JSON
1.Assets下创建文件夹Plugins(定名固定,引擎约定用于插件的文件夹)
2.下载LitJson.dll,并将其拖拽至该文件夹内
3.脚本内引入定名空间:using LitJson;
接下来就可以调用Json相关API了
三.Json API演示
下面示例将演示:
- 单对象转Json
- 多对象转Json
- Json转单对象
- Json转多对象(较为常用)
- 构造JsonData对象获取Json
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using LitJson; //引入命名空间
- public class Player
- {
- public int ID { get; set; } //自动实现的属性
- public string name;
- private int lev;
- public Player() { } //用于Json转对象,不可或缺
- public Player(int _id, string _name, int _lev)
- {
- ID = _id;
- name = _name;
- lev = _lev;
- }
- public string printInfo()
- {
- return string.Format("id:{0}, name:{1}, lev:{2}", ID, name, lev);
- }
- }
- public class JSONDemo : MonoBehaviour
- {
- // Start is called before the first frame update
- void Start()
- {
- Player p1 = new Player(30, "Peter", 10);
- Debug.Log(p1.printInfo());
- //单对象转Json
- string str1 = JsonMapper.ToJson(p1);
- Debug.Log("-------------单对象转Json");
- Debug.Log(str1);
- //多对象转Json
- List<Player> playerList1 = new List<Player>();
- Player p2 = new Player(31, "Tom", 11);
- playerList1.Add(p1);
- playerList1.Add(p2);
- string str2 = JsonMapper.ToJson(playerList1);
- Debug.Log("-------------多对象转Json");
- Debug.Log(str2);
- //Json转单对象
- Player p3 = JsonMapper.ToObject<Player>(str1); //会调用默认构造函数
- Debug.Log("-------------Json转单对象");
- Debug.Log(p3.printInfo());
- //Json转多对象(较为常用)
- JsonData jsonData = JsonMapper.ToObject(str2);
- List<Player> playerList2 = new List<Player>();
- for (int i = 0; i < jsonData.Count; i++)
- {
- Player temp = JsonMapper.ToObject<Player>(jsonData[i].ToJson());
- playerList2.Add(temp);
- }
- Debug.Log("-------------Json转多对象");
- for (int i = 0; i < playerList2.Count; i++)
- {
- Debug.Log(playerList2[i].printInfo());
- }
- //构造JsonData对象获取Json
- JsonData jd = new JsonData();
- jd["id"] = "101";
- jd["name"] = "James";
- Debug.Log("-------------构造JsonData对象获取Json");
- Debug.Log(jd.ToJson());
- }
- }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |