简单理解:Json是一种文件类型,对应txt。txt里面的 数据是string类型的,而jason里面的类型使我们自定义的类型,存入的时候也是我们自定义类型存入。
对json的操作有两种,一种是unity自带的库JsonUtility,另外一种是litJson。
第一种:JsonUtility
[Serializable]//证明要进行序列化
public class Person
{
public string name;
public int age;
}
[Serializable]//证明要进行序列化
public class Persons
{
public Person[] persons;
}
public class jason : MonoBehaviour {
void Start () {
Person p1 = new Person();
p1.name = "小明";
p1.age = 25;
//转成jason字符串
string jso = JsonUtility.ToJson(p1);
Person p2 = new Person();
p2.name = "小红";
p2.age = 6;
Person[] jos = new Person[] { p1, p2 };
Persons persons = new Persons();
persons.person = jos;
jso = JsonUtility.ToJson(persons);
//解析json
Persons newpersons= JsonUtility.FromJson<Persons>(jso);//<里面是类型>(是要解析的变量,文件)
}
}
第二种用litjson库
//使用jsonMapper去解析json文本,基本和上面一样
JsonData jsonData = JsonMapper.ToObject(File.ReadAllText("json.txt"));
foreach (JsonData temp in jsonData)//在这里temp代表一个对象
{
//在这里面就可以遍历里面的信息了
}
//使用泛型去解析json
//json里面对象的键必须跟定义的类里面的字段或者属性保持一致
//存进去是什么类型取出来就要是什么
List<Skill>skillList=JsonMapper.ToObject<List<Skill>>(File.ReadAllText("json.txt"));