【Unity】使用LitJson保存和读取数据的例子
LitJson 是一个轻量级的 JSON 解析和生成库,广泛应用于 .NET 环境中。
优点:轻量级,易用,性能优秀,支持LINQ和自定义对象的序列化和反序列化。
public class LitJsonTest : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
PersonOfJson personOfJson1 = new();
personOfJson1.name = "keixo";
personOfJson1.age = 19;
//将数据转为字符串
string jsonStr1 = JsonMapper.ToJson(personOfJson1);
Debug.Log(jsonStr1);
//将字符串转为对象
PersonOfJson personOfJson4 = JsonMapper.ToObject<PersonOfJson>(jsonStr1);
//设有json数据
string jsonStr2 = @"{""name"" : ""zhaoxi"", ""age"" : 23 }";
PersonOfJson personOfJson5 = JsonMapper.ToObject<PersonOfJson>(jsonStr2);
Debug.Log(personOfJson5.name);
string jsonStr3 = @"
{
""name"" : ""alex"",
""id"" : 131231232,
""1"":[
{
""n1"" : ""n1"",
""n2"" : 1
},
{
""n1"" : ""n11"",
""n2"" : 2
}
]
}";
//可以把每个键值对都看成JsonData对象进行使用
JsonData jsonData = JsonMapper.ToObject(jsonStr3);
Debug.Log(jsonData["name"]);//alex
Debug.Log(jsonData["id"]);//131231232
JsonData jsonDate_Array = jsonData["1"];
//遍历数组
for(int i = 0; i < jsonDate_Array.Count; i ++)
{
Debug.Log("n1 =" + jsonDate_Array[i]["n1"]);
Debug.Log("n2 =" + jsonDate_Array[i]["n2"]);
}
}
}
[Serializable]
public class PersonOfJson
{
public string name;
public int age;
}
[Serializable]
public class PersonsOfJson
{
public List<PersonOfJson> personOfJsonList;
public int id;
}