工作过程中使用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的读写使用相关推荐

  1. Unity实用功能之读写Excel表格

    概述 在项目开发过程中,经常会用到大量的可编辑的数据,而这些数据使用Json,XML等形式存储又比较麻烦 PS:对于不懂电脑的客户来说完全就是看天书,后期编辑也比较费事.所以就有了使用Excel表格进 ...

  2. 关于Unity LitJson写入数据报错的问题

    项目场景: 在unity中使用LitJson来编写存档系统 问题描述 例如:写入时发生如下报错 原因分析: LitJson不支持写入Float类型 解决方案: 将Float更改为其他浮点类型或者直接转 ...

  3. Unity 打包exe 读写Excel表格文件

    Unity 在运行的时候读取用户配置信息,在应用内导出需要保存的信息到Excel 表格 1.导入Excel 读取插件 2.导入打开Windows文件以及文件夹工具(之前有写过) 3.使用方法 1).新 ...

  4. unity android sd卡路径,一、文件与路径——2、unity路径特点写法和文件读写全攻略...

    1.Unity中各路径和目录的对应关系 image.png 其中,安卓中的路径是有两种分支的 image.png 在打包面板中,有个Write Access 当我们选择Internal Only就是表 ...

  5. 【Unity 31】 Unity中的文件读写, json,Get和Post,聚合数据接口的使用

    PS:本系列笔记将会记录我此次在北京学习Unity开发的总体过程,方便后期写总结,笔记为日更. 笔记内容均为 自己理解,不保证每个都对 Part 1 文件读写: 数据存储: 根据游戏类型划分:单机游戏 ...

  6. Unity实用小工具或脚本——读写Json工具

    一.前言       在Unity中读写Json文件已经有非常好的工具,可以将Json文件和结构体数据进行相互转换,如图1所示,在Unity Asset Store中搜JSON.NET可以找到该插件, ...

  7. Unity (C#) 使用 LitJson 处理 JSON 数据

    相关链接 dll 文件,点击即下载 LitJson 官网 声明命名空间 using LitJson; ps: 直接将 .dll 文件拖入 Unity 的 Assets/Plugins目录中便可以使用了 ...

  8. Unity封装MemoryStream进行内存读写

    Unity封装MemoryStream进行内存读写 MMO_MemoryStream类 using System; using System.IO; using System.Text;public ...

  9. Unity之使用LitJson做游戏存档

    参考这位哥的文章https://blog.csdn.net/BillCYJ/article/details/79888614,比较各种存档方法的优劣,最后我选了LitJson,但是实际使用中仍然遇到了 ...

  10. Unity Android(七) Unity Android10读写权限

    PS:Android10读取权限发生了变化,即使应用权限里有读写权限可能也无法进行读写,主要是 需要 android:requestLegacyExternalStorage="true&q ...

最新文章

  1. 【深度学习】ResNet的思想
  2. php mysql日期戳转时间戳_php日期转时间戳,指定日期转换成时间戳
  3. GDCM:gdcm::FileChangeTransferSyntax的测试程序
  4. 机电传动控制第一周学习笔记
  5. stc15w4k32s4芯片引脚图片_单片机引脚功能初识及提高(3)
  6. SAP License:最近收到的信(审计人员关于成本问题的请教)
  7. python使用ddt_使用DDT数据驱动测试框架Python
  8. aws ebs分类_AWS EBS – Amazon Elastic Block Storage
  9. 【Driver】协作安装程序
  10. java的安装包下载 百度云_Java开发相关安装包网盘下载链接分享
  11. 使用linux批量引物设计,使用Misa结合Primer3来批量设计SSR引物
  12. oracle创建视图多表关联,Oracle创建两表关联查询的视图
  13. php datedif,Datedif函数全面解析及BUG分析
  14. 如何免费使用阿里云服务器?【一篇文章教会你,真香】
  15. 酷派把用户手机当肉鸡,非一天两天
  16. python里2f是啥意思_Python 字符串前面加u,r,b,f的含义
  17. uniapp选择所有城市通过索引方式(源码自带所有城市json格式数据)
  18. sudo -s sudo su
  19. 解决 shiro 多次调用 redis 的问题
  20. opengl win32窗口的建立

热门文章

  1. 【算法学习】布谷鸟搜索算法【CuckooSearch(CS)】
  2. 展讯8541E:NFC PM1810驱动调试
  3. 从游击队到正规军(三):基于Go的马蜂窝旅游网分布式IM系统技术实践
  4. 7.3 超标量流水线
  5. Python 的 setup.py 详解
  6. PCWorld:HTML5会终结移动应用程序吗?
  7. 基于UDP的网络群聊系统
  8. 遥感图像处理学习一、概念及组成
  9. Ubuntu下eclipse无法识别手机驱动
  10. mx350显卡天梯图_不可错过的2020显卡天梯图,选卡详解