有两种模式的解析:
1、第一种是如下形式:
{
"version": "1.0.1",
"isRelease": true,
"isRecharge": false,
"ResUrl": "http://192.168.1.248:80/res/kaifaRes/",
"updateurl": "http://ng.d.cn/xiangmoOL/",
"KEY": "jev5sd28nhmgy1eg45jb",
"serverListServer": {
"ROOT_SERVER_INDEX": -1,
"ROOT_HOST": "192.168.1.248",
"ROOT_POST": 3003
}
}
这种的大括号连接,可以视为是两个实体类共同统一的
2、带有中括号的:如下两种
其中将中括号所括内容看作是数组就可以了
{
"family_list": [{
"name" : "candycat",
"age" : 21,
"tellphone" : "xxx",
"address" : "xxx"
},
{
"name" : "candycat#",
"age" : 22,
"tellphone" : "xxx",
"address" : "xxx"
},
{
"name" : "candycat##",
"age" : 23,
"tellphone" : "xxx",
"address" : "xxx"
}
]
}
{
"Name": "yuson",
"Age": 26,
"Birthday": "1986-11-21",
"Thumbnail": [
{
"Url": "http: //xuanyusong.co",
"Height": 256,
"Width": "200"
},
{
"Url": "http: //baidu.com",
"Height": 1024,
"Width": "500"
}
]
}
using UnityEngine;
using UnityEditor;
using System.Collections;
using System.Collections.Generic;
using LitJson;
public class FamilyInfo
{
public string name;
public int age;
public string tellphone;
public string address;
}
public class FamilyList
{
public List<FamilyInfo> family_list;
}
public class ParseJson : MonoBehaviour {
public FamilyList m_FamilyList = null;
void Start () {
ResolveJson();
ReloadFamilyData();
DisplayFamilyList(m_FamilyList);
}
private void ReloadFamilyData()
{
UnityEngine.TextAsset s = Resources.Load("family") as TextAsset;
string tmp = s.text;
m_FamilyList = JsonMapper.ToObject<FamilyList>(tmp);
}
private void DisplayFamilyList(FamilyList familyList)
{
if (familyList == null) return;
foreach (FamilyInfo info in familyList.family_list)
{
Debug.Log("Name:" + info.name + " Age:" + info.age + " Tel:" + info.tellphone + " Addr:" + info.address);
}
}
public void ResolveJson()
{
UnityEngine.TextAsset s = Resources.Load("JsonExample") as TextAsset;
string str = s.text;
//这里是解析,包括整形与字符串
JsonData jd = JsonMapper.ToObject(str);
Debug.Log("name = " + (string)jd["Name"]);
Debug.Log("Age = " + (int)jd["Age"]);
Debug.Log("Birthday = " + (string)jd["Birthday"]);
JsonData jdItems = jd["Thumbnail"];
for (int i = 0; i < jdItems.Count; i++)
{
Debug.Log("URL = " + jdItems[i]["Url"]);
Debug.Log("Height = " + (int)jdItems[i]["Height"]);
Debug.Log("Width = " + jdItems[i]["Width"]);
}
}
}