LitJson在Unity中的使用

LitJson在Unity中的使用

  • LitJson简单介绍
    • LitJson的导入
    • LitJson Api 介绍
      • JsonData
      • JsonMapper.ToJson()
      • JsonMapper.ToObject(string)
    • 获取和生成Json
      • 示例Json
      • 获取Json文件
        • 对文件字段的读取
    • 生成Json文件
      • 方法一:用JsonData进行写入
      • 方法二:使用 JsonMapper和类 进行生成

LitJson简单介绍

是一种轻量级的数据交换格式。它是基于JavaScript语法标准的一个子集。JSON采用完全独立于语言的文本格式,可以很容易在各种网络、平台和程序之间传输。JSON的语法很简单,易于人阅读和编写,同时也易于机器解析和生成

特别注意:Json中使用[ ]表示数组结构,使用{ }表示对象结构, “键”:“值” 的方式表示属性及值

LitJson的导入

LitJson包
提取码: Mark

将解压出的Dll放入Unity Asset Plugins文件夹下,如果没有改文件夹则创建一个
LitJson在Unity中的使用_第1张图片

LitJson Api 介绍

JsonData

JsonData为中转格式,表示一个对象,可以利用该格式来方便的对Json进行一些读取、写入、生成的操作,将它理解为LitJson为了便于使用者操作所设计的一种格式即可
用法如下

//实例
JsonData jsonData = new JsonData();

//写入
jsonData["type"] = "query_app_info";

//读取(读取需要按照写入的 格式、属性 进行读取,否则会报异常)
string _string= (string)jsonData["type"];

JsonMapper.ToJson()

可以将任何格式转化为string

//将jsondata转为json
string json = JsonMapper.ToJson(jsonData);

JsonMapper.ToObject(string)

可以将string转为任意T格式

//将json转为JsonData
JsonData _jsonData = JsonMapper.ToObject<JsonData>(gameConfig);

获取和生成Json

示例Json

我将该文件放在Unity的streamingAssets文件夹中
LitJson在Unity中的使用_第2张图片

文件内容

{
  "Time":"1月2日",
  "Num":11,
  "Videos":{
    "video_1":"满江红",
    "video_2":"深海"
  }
}

获取Json文件

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);
        }

生成Json文件

方法一:用JsonData进行写入

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();
    }

方法二:使用 JsonMapper和类 进行生成

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;
        }
    }

你可能感兴趣的:(Unity实用小功能,unity,游戏引擎)