Unity LitJson的读写使用
工作过程中使用Json进行数据的传递以及整理,是极为常见的。在工作之余,制作了一个小的Demo,帮助新手快速的了解Json的读写;
LitJson的常规使用,主要是如下函数
JsonMapper.ToJson()
JsonMapper.ToObject()
JsonReader
JsonWriter
JsonData
使用Litjson插件,具体的下载地址,请自行百度,我也是百度来的下载链接;
下载好插件后,将其导入Unity 放在Pluing文件夹下
现在桌面新建一个Text文档 在里面写入需要加载的Json
json的格式,推荐一个链接给大家,可以在线解析,查看自己编写的json文件是否正确,并且,可生成C#实体
JSON在线解析及格式化验证 - JSON.cnhttps://www.json.cn/json/jsononline.html
写好后保存UTF-8格式 将文件后缀改为json
在unity 中新建一个StreamingAssets文件夹,将文件拖入文件夹中
streamingAssets文件夹中的文件,用来做读写测试,打包后文件是只读文件,不可写
如果需要打包后,可读可写,请自行更换到系统文件夹
下面我们来开始编写 读写脚本
代码已作详尽注释,不在赘述,直接附上代码
using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; using System.Text; using LitJson;#region C#实体 public class StudentItem {/// <summary>/// 学号/// </summary>public int StuNum { get; set; }/// <summary>/// 姓名/// </summary>public string Name { get; set; }/// <summary>/// 生命值/// </summary>public int HP { get; set; } }public class Root {/// <summary> /// 数据列表/// </summary>public List<StudentItem> Student { get; set; } } #endregion public class ReadJson : MonoBehaviour {/// <summary>/// 私有列表,用来存储学生数据/// </summary>private List<StudentItem> _StudentData;/// <summary>/// 文件地址/// </summary>string path = Application.streamingAssetsPath + "/Test.json";void Start(){ ReadJsonData();SaveJson(path);Debug.Log("修改好的json数据");ReadJsonData();}/// <summary>/// 写入并存储Json/// </summary>void SaveJson(string path){StreamReader streamReader = new StreamReader(path);JsonReader js = new JsonReader(streamReader);Root r = JsonMapper.ToObject<Root>(js);//读取json初始数据streamReader.Close();//关闭文件streamReader.Dispose();//释放内存ChangeJsonData();r.Student = _StudentData;string studentJsonData = JsonMapper.ToJson(r);//转换成Json数据StreamWriter sw = new StreamWriter(path);//写入streamingAssets文件夹下的文件中sw.Write(studentJsonData);sw.Close();//关闭文件}private void ChangeJsonData(){for (int i = 0; i < _StudentData.Count; i++)//循环遍历打印{switch (i){case 0:_StudentData[i].Name = "李四";_StudentData[i].HP = 80000;break;case 1:_StudentData[i].Name = "张三";_StudentData[i].HP = 70;break;default:break;}}if (_StudentData.Count<=2){AddData(3, "王五", 900);} }/// <summary>/// 增加数据/// </summary>/// <param name="stuNum">学号</param>/// <param name="name">姓名</param>/// <param name="hp">生命值</param>private void AddData(int stuNum , string name , int hp){StudentItem student = new StudentItem();student.StuNum = stuNum;student.Name = name;student.HP = hp;_StudentData.Add(student);}/// <summary>///文件写入 (如果使用File来进行写入操作就调用此函数) /// </summary>/// <param name="path">文件写入地址</param>/// <param name="content">文件写入内容</param>public void WriteFile(string path, string content){if (Directory.Exists(path)){File.Delete(path);}File.WriteAllText(path, content);}/// <summary>/// 读取json数据/// </summary>void ReadJsonData(){StreamReader streamReader = new StreamReader(path);JsonReader js = new JsonReader(streamReader);//读取目标地址的文件Root r = JsonMapper.ToObject<Root>(js);//读取json数据_StudentData = r.Student;for (int i = 0; i < _StudentData.Count; i++)//循环遍历打印{Debug.Log("学号 " + _StudentData[i].StuNum + "姓名 " + _StudentData[i].Name + "生命值 " + _StudentData[i].HP);}streamReader.Close();streamReader.Dispose();//关闭文件,并释放内存 } }
在场景中新建一个空物体,将脚本挂在空物体上,我们来看一下运行Debug
我们再打开json文件看一下
已达到我们的预期效果,能够正常的进行读写,以及新增数据
Unity LitJson的读写使用相关推荐
- Unity实用功能之读写Excel表格
概述 在项目开发过程中,经常会用到大量的可编辑的数据,而这些数据使用Json,XML等形式存储又比较麻烦 PS:对于不懂电脑的客户来说完全就是看天书,后期编辑也比较费事.所以就有了使用Excel表格进 ...
- 关于Unity LitJson写入数据报错的问题
项目场景: 在unity中使用LitJson来编写存档系统 问题描述 例如:写入时发生如下报错 原因分析: LitJson不支持写入Float类型 解决方案: 将Float更改为其他浮点类型或者直接转 ...
- Unity 打包exe 读写Excel表格文件
Unity 在运行的时候读取用户配置信息,在应用内导出需要保存的信息到Excel 表格 1.导入Excel 读取插件 2.导入打开Windows文件以及文件夹工具(之前有写过) 3.使用方法 1).新 ...
- unity android sd卡路径,一、文件与路径——2、unity路径特点写法和文件读写全攻略...
1.Unity中各路径和目录的对应关系 image.png 其中,安卓中的路径是有两种分支的 image.png 在打包面板中,有个Write Access 当我们选择Internal Only就是表 ...
- 【Unity 31】 Unity中的文件读写, json,Get和Post,聚合数据接口的使用
PS:本系列笔记将会记录我此次在北京学习Unity开发的总体过程,方便后期写总结,笔记为日更. 笔记内容均为 自己理解,不保证每个都对 Part 1 文件读写: 数据存储: 根据游戏类型划分:单机游戏 ...
- Unity实用小工具或脚本——读写Json工具
一.前言 在Unity中读写Json文件已经有非常好的工具,可以将Json文件和结构体数据进行相互转换,如图1所示,在Unity Asset Store中搜JSON.NET可以找到该插件, ...
- Unity (C#) 使用 LitJson 处理 JSON 数据
相关链接 dll 文件,点击即下载 LitJson 官网 声明命名空间 using LitJson; ps: 直接将 .dll 文件拖入 Unity 的 Assets/Plugins目录中便可以使用了 ...
- Unity封装MemoryStream进行内存读写
Unity封装MemoryStream进行内存读写 MMO_MemoryStream类 using System; using System.IO; using System.Text;public ...
- Unity之使用LitJson做游戏存档
参考这位哥的文章https://blog.csdn.net/BillCYJ/article/details/79888614,比较各种存档方法的优劣,最后我选了LitJson,但是实际使用中仍然遇到了 ...
- Unity Android(七) Unity Android10读写权限
PS:Android10读取权限发生了变化,即使应用权限里有读写权限可能也无法进行读写,主要是 需要 android:requestLegacyExternalStorage="true&q ...
最新文章
- 【深度学习】ResNet的思想
- php mysql日期戳转时间戳_php日期转时间戳,指定日期转换成时间戳
- GDCM:gdcm::FileChangeTransferSyntax的测试程序
- 机电传动控制第一周学习笔记
- stc15w4k32s4芯片引脚图片_单片机引脚功能初识及提高(3)
- SAP License:最近收到的信(审计人员关于成本问题的请教)
- python使用ddt_使用DDT数据驱动测试框架Python
- aws ebs分类_AWS EBS – Amazon Elastic Block Storage
- 【Driver】协作安装程序
- java的安装包下载 百度云_Java开发相关安装包网盘下载链接分享
- 使用linux批量引物设计,使用Misa结合Primer3来批量设计SSR引物
- oracle创建视图多表关联,Oracle创建两表关联查询的视图
- php datedif,Datedif函数全面解析及BUG分析
- 如何免费使用阿里云服务器?【一篇文章教会你,真香】
- 酷派把用户手机当肉鸡,非一天两天
- python里2f是啥意思_Python 字符串前面加u,r,b,f的含义
- uniapp选择所有城市通过索引方式(源码自带所有城市json格式数据)
- sudo -s sudo su
- 解决 shiro 多次调用 redis 的问题
- opengl win32窗口的建立