赞
踩
{ "Web": [ { "id": 1, "name": "名字" }, { "id": 2, "name": "名字2" }, { "id": 3, "name": "名字3" } ] }
JsonData实现的接口如下
JsonData data = JsonMapper.ToObject(jsondata);
//JsonData是用来接受JsonMapper解析json的数据
JsonMapper
string jsondata=JsonMapper.ToJson(obj);
//将对象obj转化为Json字符串
JsonData data = JsonMapper.ToObject(jsondata);
//将字符串转化为Json对象
//可以像键值对一样获取数据,即以中括号[]形式获取
JsonData jd=data[“key”]
创建Json类型
public class Hero
{
public string name;
public int power;
}
public class Heros
{
public Hero[] heros;
}
第一种 创建Json数据
{'heros':[{'name':'Gary','power':90},{'name':'Gary2','power':80}]}
Hero hero1 = new Hero();
hero1.name = "Gary";
hero1.power = 90;
Hero hero2 = new Hero();
hero2.name = "Gary2";
hero2.power = 80;
Heros heros = new Heros();
heros.heros = new Hero[] { hero1, hero2 };
string jsonStr = JsonMapper.ToJson(heros);
Debug.Log(jsonStr);
//解析Json
Heros newHeros = JsonMapper.ToObject<Heros>(jsonStr);
Debug.Log(newHeros.heros[0].name);
第二种 创建Json数据
//简单类型:{'name':'Gary','power':90} JsonData demo = new JsonData(); //demo.SetJsonType(JsonType.Object); demo["name"] = "Gary"; demo["power"] = 90; Debug.Log(demo.ToJson()); //复杂类型:{'heros':[{'name':'Gary','power':90},{'name':'Gary2','power':80}]} JsonData demos = new JsonData(); //{} JsonData demo1 = new JsonData(); demo1["name"] = "Gary1"; demo1["power"] = 90; JsonData demo2 = new JsonData(); demo2["name"] = "Gary2"; demo2["power"] = 80; demos.SetJsonType(JsonType.Array); demos.Add(demo1); demos.Add(demo2); Debug.Log(demos.ToJson());
解析Json
Heros newHeros = JsonMapper.ToObject<Heros>(jsonStr);
Debug.Log(newHeros.heros[0].name);
以遍历的形式foreach
string jsonStr = "{'heros':[{'name':'Gary','power':90},{'name':'Gary2','power':80}]}";
JsonData demos = JsonMapper.ToObject(jsonStr);
JsonData heros = demos["heros"]; //[]
//heros[1]["name"]
foreach(JsonData heroJd in heros)
{
Debug.Log(heroJd["name"].ToString());
Debug.Log((int)heroJd["power"]);
}
///
/// <summary> /// 生成txt /// </summary> /// <param name="name">txt名字</param> /// <param name="strB">文本内容</param> private void ToTxt(string name, StringBuilder strB)// IList<string> content) { StreamWriter writer = null; try { lock (this) { // 检查文件夹 string folderPath = Application.dataPath + "/Resources/Data"; //string folderPath = @"C:\Users\Administrator\Desktop\InfoSystemDatas"; if (!Directory.Exists(folderPath)) { //创建文件夹 Directory.CreateDirectory(folderPath); } //if (Directory.Exists(folderPath)) //{ // //存在/成功创建 文件夹 // folderPath = folderPath + @"\"; //} //else //{ // //无则当前路径创建文件 // folderPath = folderPath + @"-"; //} //写入日志 string filePath = string.Format(folderPath + @"/{0}.txt", name);//, DateTime.Now.ToString("yyyy-MM-dd")); //设置覆盖写入 FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write); writer = new StreamWriter(fs); writer.Write(strB); //writer.WriteLine("\r\n----------------------------end----------------------------"); writer.Dispose(); UnityEditor.AssetDatabase.Refresh(); } } catch (Exception e) { Debug.LogError(e.Message); } finally { if (writer != null) { writer.Close(); } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。