Json示例
1,json对象
{“name”:”张三”,”lv”:1,”job”:”法师”,”exp”:1.1}
2,复合json对象
{“name”:”李四”,”job”:{“lv”:2,”job”:”战士”,”exp”:2.2}}
3,json数组
[{“name”:”张三”,”lv”:1,”job”:”法师”,”exp”:1.1},{“name”:”李四”,”lv”:2,”job”:”战士”,”exp”:2.2}]
///这个就是Json文件里面的格式了。
///
2,生成json对象
Json.Writer writer=new JsonWriter();//创建json对象
writer.WriteObjectStart();//开始写对象
writer.WritePropertyName(“name”);//写入键
writer.Write(“张三”);//写入值
writer.WriteObjectEnd();//结束写入对象
生成对象
所以要打印的话
String str=writer.ToString();
Debug.Log(str);
3,用LitJson生成json对象
JsonData data=new JsonData();
data[“name”]=”张三”;
data[“lv”]=1;
data[“job”]=”法师”;
data[“exp”]=1.1;
。。。生成json对象为。。。。
{“name”:”张三”,”lv”:1,”job”:”法师”,”exp”:1.1}
Mono例子:
using UnityEngine;using System.Collections.Generic;public class Gamemanager : MonoBehaviour { string strLitjson; void Start () { CreateLitjson(); }
Public void CreateLitjson(){
JsonData data=new JsonData();
data[“name”]=”张三”;
data[“lv”]=1;
data[“job”]=”法师”;
data[“exp”]=1.1;
strLitjson=data.ToJson();//说明litjson是输出字符串了
Debug.Log(strLitjson);
} }
//想要同样的效果用老Json
Public void CreateLitjson(){
writer.WriteObjectStart();//开始写对象
JsonWriter writer=new JsonWriter();
writer.WritePropertyName(“name”);
writer.Write(“张三”);
writer.WritePropertyName(“lv”);
writer.Write(1);
writer.WritePropertyName(“job”);
writer.Write(“法师”);
writer.WritePropertyName(“exp”);
writer.Write(1.1);
writer.WriteObjectEnd();
String json01=writer.ToString();
Debug.Log(json01);
二、生成复合json对象//
这个看明白了,前面不用看了生成下面的结果
{“name”:”李四”,”info”:{“lv”:2,”job”:,”战士”,”exp”:2.2}}
方法1,老json
Void CreateJsonObject(){
JsonWriter writer=new JsonWriter ();
writer.WriteObjectStart();
writer.WritePropertyName(“name”);
writer.Write(“李四”);
writer.WritePropertyName(“info”);
writer.WriteObjectStart();
writer.WritePropertyName(“lv”);
writer.Write(2);
writer.WritePropertyName(“job”);
writer.Write(“战士”);
writer.WritePropertyName(“exp”);
writer.Write(2.2);
writer.WriteObjectEnd();
writer.WriteObjectEnd();//两个end了
String strJson=writer.ToString();
}
//
方法2,litjson方式
Void CreateJsonObject(){
JsonData data=new JsonData();
data[“name”]=”李四”;
data[“info”]=new JsonData();
data[“info”][“lv”]=2;
data[“info”][“job”]=”战士”;
data[“info”][“exp”]=2.2;
String strJson=data.ToJson;//是ToJson;
/
方法2复杂点的,生成json数组,litjson方式
void CreateLitjsonArray(){
JsonData data=new JsonData();
JsonData data1=new JsonData();
data1["name"]="李四";
data1 ["lv"] = 2;
JsonData data2=new JsonData();
data2["job"]="战士";
data2 ["exp"] = 199.314;
data.Add (data1);
data.Add (data2);
strLitjsonArray=data.ToJson();//说明litjson是输出字符串了
Debug.Log(strLitjsonArray);
}
结果是:[{"name":"李四","lv":2},{"job":"战士","exp":199.314}]
/// 以上全部是创建json,下面是解析了。
/// 只解析litjson的例子,就解析上面这个最复杂的数组的例子
string m_name;
int lv;
string job;
float exp; //首先要有变量接受对应的键值
void ParsingJsonArray(){
JsonData data = JsonMapper.ToObject (strLitjsonArray);//strLitjsonArray这个string要提前申明的
m_name=data [0]["name"].ToString();
lv=int.Parse(data[0] ["lv"].ToString());
job=data [1]["job"].ToString();
exp=float.Parse(data[1] ["exp"].ToString());
Debug.Log ("name:"+m_name);
Debug.Log ("lv:"+lv);
Debug.Log ("job:"+job);
Debug.Log ("exp:"+exp);
}
结束:这样应该很清楚的知道用法了,还有litjson解析 中文的时候好像要乱码,网上有修改的dll,可以找找