json解析的基本操作。
using UnityEngine;
using System.Collections;
using LitJson;
public class TestJson : MonoBehaviour {
private string json1;
private string json2;
private string name;
private int lv;
private string job;
private float exp;
/// <summary> /// 创建Json对象 /// </summary>
private void CreateJson()
{
JsonWriter json = new JsonWriter ();
json.WriteObjectStart ();
json.WritePropertyName ("name");
json.Write ("张三");
json.WritePropertyName ("lv");
json.Write (1);
json.WritePropertyName ("job");
json.Write ("法师");
json.WritePropertyName ("exp");
json.Write (1.1);
json.WriteObjectEnd ();
json1 = json.ToString ();
}
private void CreateLitJson()
{
JsonData json = new JsonData ();
json ["name"] = "张三";
json ["lv"] = 1;
json ["job"] = "法师";
json ["exp"] = 1.1;
json2 = json.ToJson ();
}
/// <summary> /// 解析Json /// </summary>
private void ParsingJson()
{
JsonData json = JsonMapper.ToObject (json2);
name = json ["name"].ToString();
lv = json ["lv"].ValueAsInt ();
job = json ["job"].ValueAsString ();
exp = float.Parse(json ["exp"].ToString ());
}
/// <summary> /// 创建复合Json /// </summary>
private void CreateCompositeJson()
{
JsonWriter json = new JsonWriter ();
json.WriteObjectStart ();
json.WritePropertyName ("name");
json.Write ("李四");
json.WritePropertyName ("info");
json.WriteObjectStart ();
json.WritePropertyName ("lv");
json.Write (2);
json.WritePropertyName ("job");
json.Write ("战士");
json.WritePropertyName ("exp");
json.Write (2.2);
json.WriteObjectEnd ();
json.WriteObjectEnd ();
json1 = json.ToString ();
}
private void CreateCompostieLitJson()
{
JsonData json = new JsonData ();
json["name"] = "李四";
JsonData json1 = new JsonData ();
json1 ["lv"] = 2;
json1 ["job"] = "战士";
json1 ["exp"] = 2.2;
json ["info"] = json1;
// JsonData json = new JsonData ();
// json["name"] = "李四";
// json ["info"] = new JsonData ();
// json ["info"] ["lv"] = 2;
// json ["info"] ["job"] = "战士";
// json ["info"] ["exp"] = 2.2;
json2 = json.ToJson ();
}
/// <summary> /// 解析Json /// </summary>
private void ParsingCompostieJson()
{
JsonData json = JsonMapper.ToObject (json2);
name = json ["name"].ToString ();
JsonData json1 = json ["info"];
lv = json1 ["lv"].ValueAsInt ();
job = json1 ["job"].ToString ();
exp = float.Parse(json1 ["exp"].ToString());
// JsonData json = JsonMapper.ToObject (json2);
// name = json ["name"].ToString ();
// lv = json ["info"] ["lv"].ValueAsInt ();
// job = json ["info"] ["job"].ValueAsString ();
// exp = float.Parse(json ["info"] ["exp"].ToString());
}
/// <summary> /// 创建Json数组 /// </summary>
private void CreateJsonArray()
{
JsonWriter json = new JsonWriter ();
json.WriteArrayStart ();
json.Write ("张三");
json.Write (1);
json.Write ("法师");
json.Write (1.1);
json.WriteArrayEnd ();
json1 = json.ToString ();
}
private void CreateLitJsonArray()
{
JsonData json = new JsonData ();
json.Add ("张三");
json.Add (1);
json.Add ("法师");
json.Add (1.1);
json2 = json.ToJson ();
}
/// <summary> /// 解析Json数组 /// </summary>
private void ParsingJsonArray()
{
JsonData json = JsonMapper.ToObject (json2);
name = json [0].ToString ();
lv = json [1].ValueAsInt ();
job = json [2].ToString ();
exp = float.Parse(json[3].ToString());
}
private void CreatJson()
{
// JsonData json = new JsonData ();
// json.Add ("张三");
// JsonData data1 = new JsonData ();
// data1 ["info"] = new JsonData ();
// data1 ["info"] ["lv"] = 1;
// data1 ["info"] ["job"] = "法师";
// data1 ["info"] ["exp"] = 1.1;
// json.Add (data1);
// json.Add (1);
// JsonData data2 = new JsonData ();
// data2 ["exp"] = 2.2;
// json.Add (data2);
// JsonData data3 = new JsonData ();
// data3 ["name"] = "李四";
// data3 ["info"] = new JsonData ();
// data3 ["info"] ["lv"] = 3;
// data3 ["info"] ["job"] = "战士";
// data3 ["info"] ["exp"] = 3.3;
// json.Add (data3);
JsonData json = new JsonData ();
json.Add ("张三");
JsonData data1 = new JsonData ();
data1 ["lv"] = 1;
data1 ["job"] = "法师";
data1 ["exp"] = 1.1;
JsonData data2 = new JsonData ();
data2 ["info"] = data1;
json.Add (data2);
json.Add (1);
JsonData data3 = new JsonData ();
data3 ["exp"] = 2.2;
json.Add (data3);
JsonData data4 = new JsonData ();
data4 ["name"] = "李四";
JsonData data5 = new JsonData ();
data5 ["lv"] = 3;
data5 ["job"] = "战士";
data5 ["exp"] = 3.3;
data4 ["info"] = data5;
json.Add (data4);
json1 = json.ToJson ();
}
private void ParsingJsons()
{
JsonData json = JsonMapper.ToObject (json1);
Debug.Log (json[0].ToString());
Debug.Log (json[1]["info"] ["lv"].ToString());
Debug.Log (json[1]["info"] ["job"].ToString());
Debug.Log (json[1]["info"] ["exp"].ToString());
Debug.Log (json[2].ToString());
Debug.Log (json[3]["exp"].ToString());
Debug.Log (json[4]["name"].ToString());
Debug.Log (json[4]["info"] ["lv"].ToString());
Debug.Log (json[4]["info"] ["job"].ToString());
Debug.Log (json[4]["info"] ["exp"].ToString());
}
private void OnGUI()
{
if (GUILayout.Button ("创建Json"))
CreatJson ();
if (GUILayout.Button ("创建LitJson"))
CreateLitJsonArray ();
if (GUILayout.Button ("解析LitJson"))
ParsingJsons ();
GUILayout.Label ("json1:" + json1);
GUILayout.Label ("json2:" + json2);
GUILayout.Label ("name:" + name);
GUILayout.Label ("lv:" + lv);
GUILayout.Label ("job:" + job);
GUILayout.Label ("exp:" + exp);
}
}