JSON 数据的书写格式是:名称/值对。
名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:
登录后复制
"name":"赵云"1.
JSON 对象在花括号中书写:
对象可以包含多个名称/值对:
登录后复制
{ "name":"赵云" , "level":30 }1.
JSON 数组在方括号中书写:
数组可包含多个对象:
登录后复制
{"Heros": [ { "name":"赵云" , "level":30 }, { "name":"马超" , "level":35 }, { "name":"关羽" , "level":15 }, { "name":"张飞" , "level":18 }, { "name":"黄忠" , "level":50 }]}1.2.3.4.5.6.7.8.9.
1.新建一个Text文本,命名为“TestJson01.txt”。(文本内容如下)
登录后复制
{ "name":"赵云","level":30,"skill":["迅雷","狂雷天牢","连弩狂涛"]}1.2.3.
2.在Unity中创建一个“Resources/Json”文件夹,将 TestJson01.txt 文件导入在文件中。
3.新建一个类,命名为“JsonInfo.cs”,用来建立数据模型。(如下)
登录后复制
[System.Serializable]public class JsonInfo { public string name; public int level; public string[] skill;}1.2.3.4.5.6.7.
4.新建一个类,命名为“TestJson.cs”。(代码如下)
登录后复制
using UnityEngine;public class TestJson : MonoBehaviour{ private void Awake() { string jsonString = Resources.Load<TextAsset>("Json/TestJson01").ToString(); JsonInfo jsonInfo = JsonUtility.FromJson<JsonInfo>(jsonString); Debug.Log("姓名:"+jsonInfo.name); Debug.Log("等级:"+jsonInfo.level.ToString()); for(int i=0;i< jsonInfo.skill.Length;i++) { Debug.Log("技能"+i+":"+ jsonInfo.skill[i]); } }}1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.
5.将 TestJson.cs 挂载在场景中,并运行程序。(结果如下)
1.新建一个Text文本,命名为“TestJson01.txt”。(文本内容如下)
登录后复制
{ "Heros":[ {"name":"赵云","level":30,"skill":["迅雷","狂雷天牢","连弩狂涛"]}, {"name":"马超","level":35,"skill":["赤焰","赤焰燃","赤焰火海","连弩激射"]}, {"name":"关羽","level":15,"skill":["火箭烈","火箭强袭"]}, {"name":"张飞","level":18,"skill":["火箭天袭","龙炮","迫击龙炮"]}, {"name":"黄忠","level":50,"skill":["贰灭元炮","肆灭元炮","太极祝融弓","八极元","龙凤天舞"," 天雷殛电"]} ]}1.2.3.4.5.6.7.8.9.
2.新建一个类,命名为“HeroInfo.cs”。(代码如下)
登录后复制
[System.Serializable]public class HeroInfo{ public JsonInfo[] Heros;}1.2.3.4.5.
3.新建一个类,命名为“TestJson2.cs”。(代码如下)
登录后复制
using UnityEngine;public class TestJson2 : MonoBehaviour{ private void Awake() { string jsonString = Resources.Load<TextAsset>("Json/TestJson02").ToString(); HeroInfo heroInfos = JsonUtility.FromJson<HeroInfo>(jsonString); for (int i = 0; i < heroInfos.Heros.Length; i++) { JsonInfo jsonInfo = heroInfos.Heros[i]; string nameSrt = jsonInfo.name; int level = jsonInfo.level; string skillStr = string.Empty; string result = string.Empty; for (int j = 0; j < jsonInfo.skill.Length; j++) { skillStr += "技能" + j + ":" + jsonInfo.skill[j]; } result = string.Format("姓名:{0} 等级:{1} {2}", nameSrt, level, skillStr); print(result); } }}1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.
4.将 TestJson2.cs 挂载在场景中,并运行程序。(结果如下)
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删