Json官网 http://json.org/
1、将LitJson.dll导入到Assets/Plugins/目录下,在类中通过using LitJson;就可以使用LitJson提供的一些接口了。
2、关于LitJson会使用类JsonMapper和数据类型JsonData就可以了。JsonMapper主要提供了JsonMapper.ToJson和JsonMapper.ToObject两个方法。(说白了其实就是string和JsonData或者其他对象之间的相互转化)
json.txt 就是一个对象,包含三个属性
{
"Name": "Thomas More",
"Age": 57,
"Birthday": "02/07/1478 00:00:00"
}
JsonOperation .cs
using System;
using System.IO;
using UnityEngine;
using LitJson;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public DateTime Birthday { get; set; }
public override string ToString()
{
return Name + Age.ToString() + Birthday.ToString();
}
}
public class JsonOperation : MonoBehaviour
{
private string path = "";
private string path2 = "";
// Use this for initialization
void Start ()
{
path = Application.dataPath + "/json.txt";
path2 = Application.dataPath + "/json2.txt";
PersonToJson();
JsonToPerson();
}
public void PersonToJson()
{
Person xianglin = new Person();
xianglin.Name = "xianglin";
xianglin.Age = 26;
xianglin.Birthday = new DateTime(1991,7,4);
string json_xianglin = JsonMapper.ToJson(xianglin);
Debug.Log(json_xianglin);
}
public void JsonToPerson()
{
string json = File.ReadAllText(path);
Person thomas = JsonMapper.ToObject<Person>(json);
Debug.Log(thomas.ToString());
}
}
3、当JasonMapper.ToObject不带类型的时候,返回值就是JsonData。
public void JsonToPerson(string path)
{
JsonData thomas = JsonMapper.ToObject(File.ReadAllText(path));
Debug.Log(thomas["Name"]+thomas["Age"].ToString()+thomas["Birthday"]);
}
另一个例子: 一个数组里面包含着三个对象,可以使用Array,List
json2.txt
[
{
"name": "Json",
"age": 20,
"skill": "noting"
},
{
"name": "Haria",
"age": 24,
"skill": "jump"
},
{
"name": "Jsfg",
"age": 42,
"skill": "attack"
}
]
public void JsonToPerson2()
{
#region 通过JsonData来解析对象数组
Debug.Log("使用JsonData来解析对象数组");
List<Person2> jsons = new List<Person2>();
JsonData jsonData = JsonMapper.ToObject(File.ReadAllText(path2));
foreach (JsonData data in jsonData)
{
Person2 per = new Person2();
per.Name = data["name"].ToString();
per.Skill = data["skill"].ToString();
per.Age = int.Parse(data["age"].ToString());
jsons.Add(per);
}
foreach (Person2 person2 in jsons)
{
Debug.Log(person2.ToString());
}
#endregion
#region 使用类型来解析
Debug.Log("使用类型来解析对象数组");
Person2[] jsonArray = JsonMapper.ToObject<Person2[]>(File.ReadAllText(path2));
List<Person2> jsons2 = JsonMapper.ToObject<List<Person2>>(File.ReadAllText(path2));
Debug.Log("Array 集合");
foreach (Person2 person2 in jsonArray)
{
Debug.Log(person2);
}
Debug.Log("List 集合");
foreach (Person2 person2 in jsons2)
{
Debug.Log(person2);
}
#endregion
}
参考:
http://blog.csdn.net/u011618339/article/details/76147890
http://www.cnblogs.com/Firepad-magic/p/5532650.html