是一种轻量级的数据交换格式。它是基于JavaScript语法标准的一个子集。JSON采用完全独立于语言的文本格式,可以很容易在各种网络、平台和程序之间传输。JSON的语法很简单,易于人阅读和编写,同时也易于机器解析和生成
特别注意:Json中使用[ ]表示数组结构,使用{ }表示对象结构, “键”:“值” 的方式表示属性及值
LitJson包
提取码: Mark
将解压出的Dll放入Unity Asset Plugins文件夹下,如果没有改文件夹则创建一个
JsonData为中转格式,表示一个对象,可以利用该格式来方便的对Json进行一些读取、写入、生成的操作,将它理解为LitJson为了便于使用者操作所设计的一种格式即可
用法如下
//实例
JsonData jsonData = new JsonData();
//写入
jsonData["type"] = "query_app_info";
//读取(读取需要按照写入的 格式、属性 进行读取,否则会报异常)
string _string= (string)jsonData["type"];
可以将任何格式转化为string
//将jsondata转为json
string json = JsonMapper.ToJson(jsonData);
可以将string转为任意T格式
//将json转为JsonData
JsonData _jsonData = JsonMapper.ToObject<JsonData>(gameConfig);
我将该文件放在Unity的streamingAssets文件夹中
文件内容
{
"Time":"1月2日",
"Num":11,
"Videos":{
"video_1":"满江红",
"video_2":"深海"
}
}
public JsonData jsonData;
void LoadJson()
{
string configPath = Application.streamingAssetsPath + "/JsonStudyConfig.json";
//判断是否存在该文件
if (!File.Exists(configPath))
{
Debug.LogError("严重错误!配置文件不存在!");
}
//读取该路径下的文件转化为string类型
string _config = File.ReadAllText(configPath);
//再将该文件转化为jsonData类型
jsonData = JsonMapper.ToObject<JsonData>(_config);
}
string time=(string)jsonData["Time"];
int num=(int)jsonData["Num"];
for (int i = 0; i < jsonData["Videos"].Count; i++)
{
string videoName = (string)jsonData["Videos"][i];
Debug.Log(videoName);
}
void WriteJson()
{
JsonData wJsonData = new JsonData();
wJsonData["FoodName"] = "西红柿炒鸡蛋";
wJsonData["FoodNum"] = 4;
string json = wJsonData.ToJson();
string path = Application.streamingAssetsPath + "/myJson.json";
StreamWriter sw = new StreamWriter(path);
sw.Write(json);
sw.Close();
sw.Dispose();
}
void WriteJson02()
{
Food food = new Food("西红柿炒鸡蛋",4);
string json = JsonMapper.ToJson(food);
string path = Application.streamingAssetsPath + "/myJson02.json";
StreamWriter sw = new StreamWriter(path);
sw.Write(json);
sw.Close();
sw.Dispose();
}
public class Food
{
public string foodName;
public int num;
public Food(string _name, int _num)
{
foodName = _name;
num = _num;
}
}