LitJson学习

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);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值