前言
Json 和xml一样,不同表现的文本格式
Json 用于服务器,大部分用于网络交互
xml用于本地操作(关卡数据)
语法规则、格式
- 使用json格式必须是正确的,可以进行验证json格式在线编辑验证Json
- key - value 对应 一个键对应一个值
- 使用{}保存对象,{“qq” : “qwq”,”xx” : xx}
- 使用[]保存数组 “xx” : [{},{},{}]
例如:
{"name":"ls","age":20}
{"people":
[
{"name":"Neworigin", "age":20},
{"name":"Test","age":"23"}
]
}
代码解析
- 把Json格式的数据转换成Object存入list中
private void JsonToObject(){
string str = _ta.text;
JsonData jd = JsonMapper.ToObject (str);
string name = jd ["Name"].ToString ();
Debug.Log (name);
//通过索引器直接获得键值
JsonData jsonData = jd ["HeroList"];
//循环遍历HeroList对应的value集合
for (int i = 0; i < jsonData.Count; i++) {
JsonData data = jsonData [i];
string heroName = data ["HeroName"].ToString ();
int hp =int.Parse(data["HP"].ToString ());
int hk =int.Parse(data ["HK"].ToString ());
Hero hero = new Hero ();
hero.Name = heroName;
hero.HP = hp;
hero.HK = hk;
_heroGroup.Add (hero);
}
}
- 把Object转换成Json格式的字符串
private void ObjectToJson(){
Hero hero = new Hero ();
hero.Name = "A";
hero.HP = 1;
hero.HK = 2;
JsonData jd = new JsonData ();
jd ["Name"] = hero.Name;
jd ["HP"] = hero.HP;
jd ["HK"] = hero.HK;
string str = jd.ToJson ();
Debug.Log (str);
}
- 把Object数组转换成Json格式字符串的数组
//一般使用循环遍历容器,添加JsonData
JsonData jdGroup = new JsonData ();
jdGroup.Add (jd);
jdGroup.Add (jd2);
jdGroup.Add (jd3);
JsonData jdHeroList = new JsonData ();
jdHeroList ["HeroList"] = jdGroup;
string strGroup = jdHeroList.ToJson ();
Debug.Log (strGroup);