LitJson学习

来源:互联网 发布:磁盘擦除软件 比较 编辑:程序博客网 时间:2024/06/05 22:26

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();//结束写入对象
////////生成对象////////////
{“name”:”张三”}
////////////////////////////////////////////////////////////////////////
所以要打印的话
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);
}

0 0