LitJson在Unity中的使用

LitJson简单介绍

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

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

LitJson的导入

LitJson包
提取码: Mark

将解压出的Dll放入Unity Asset Plugins文件夹下,如果没有改文件夹则创建一个
在这里插入图片描述

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文件夹中
示例Json文件

文件内容

{
  "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;
        }
    }
  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小马学习笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值