Unity——写入和读取Json信息的方法
首先在Unity的Assets目录下新建一个Plugins文件夹,引入LitJson.dll类库!!!
编写读写脚本时,还需要再导入命名空间 using LitJson
关于Litjson文件:
可以去官网下载一个文件包;.dll文件存在于 litjson-0.5.0/bin目录。
Litjson官网下载链接:LitJSON download | SourceForge.net
具体操作:
先定义一个类,假如现在是要查看手机里APP的信息,把信息先放进去(这里分为简单和复杂读取时的情况,测试的时候要先把另一个注释掉!)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class APPofMine
{public int appNum;public bool phoneState;//简单写入和读取的时候直接用List来保存数据//public List<string> appList;//复杂写入和读取的时候定义一个List存放另一个类里的数据public List<AppProperty> appPropertiesList;
}
另一个类里的数据:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class AppProperty
{public string appName;public string ErenID;public bool ErenFavour;public List<int> useTimeList;
}
写入和读取的方法及调用测试代码:
代码比较长,有详细的注释!可以直接全段复制~
PS:测试时要先在Unity创建一个物体,然后把此脚本挂在物体下,另外还需要在Assets目录下创建一个 Resources 文件夹,再在Resources 文件夹下创建一个Json文件夹!!!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using LitJson;
using System.IO;public class JosnTest : MonoBehaviour
{private APPofMine appOfMine;// Start is called before the first frame updatevoid Start(){#region 简单Json信息的存储和读取//简单Json信息的存储和读取/*写入//appOfMine = new APPofMine//{// appNum = 3,// phoneState = true,// appList = new List<string>()// {// "抖音","BiliBili","绝地求生"// }//};//SaveByJson();//读取appOfMine = new APPofMine();appOfMine = LoadByJson();print(appOfMine.appNum);print(appOfMine.phoneState);foreach (var item in appOfMine.appList){print(item);}*/#endregion#region 复杂Json信息写入和读取写入//appOfMine = new APPofMine//{// appNum = 3,// phoneState = true,// appPropertiesList = new List<AppProperty>()//};//AppProperty appProperty = new AppProperty//{// appName = "抖音",// ErenID = "冬瓜大浪",// ErenFavour = true,// useTimeList = new List<int> { 6, 7, 8 }//};//appOfMine.appPropertiesList.Add(appProperty);//SaveByJson();//读取appOfMine = LoadByJson();print(appOfMine.appNum);print(appOfMine.phoneState);foreach (var item in appOfMine.appPropertiesList){print(item);print(item.appName);print(item.ErenFavour);print(item.ErenID);foreach (var itemGo in item.useTimeList){print(itemGo);}}#endregion}#region 简单存储Json信息文件的方法//存储Json信息文件private void SaveByJson(){//找到文件要存储的路径string filePath = Application.dataPath/*Assets根目录*/ + "/Resources"/*后续路径*/ + "/APPofMine.json"/*文件名*/;//利用JsonMapper将 信息类对象(字段名) 转化成 json格式 的 字符串string saveJsonStr = JsonMapper.ToJson(appOfMine);//创建一个文件流将字符串写入一个文件中StreamWriter sw = new StreamWriter(filePath);//开始写入sw.Write(saveJsonStr);//关闭文件流sw.Close();}#endregion#region 简单读取Json的信息文件//读取Json的信息文件private APPofMine LoadByJson(){APPofMine appGo = new APPofMine();//找到需要读取文件的路径string filePath = Application.dataPath/*Assets根目录*/ + "/Resources"/*后续路径*/ + "/APPofMine.json"/*文件名*/;//先判断如果文件夹存在if (File.Exists(filePath)){//创建一个新的变量 sr ,用来存储读取到的数据,开始读取StreamReader sr = new StreamReader(filePath);//把读取到的信息转换成字符串的形式存储下来string loadJsonStr = sr.ReadToEnd();//关闭文件流sr.Close();//存储读取到的数据appGo = JsonMapper.ToObject<APPofMine>(loadJsonStr);}//判空if (appGo == null){Debug.Log("读取Json文件失败");}return appGo;}#endregion}
最近工作中遇到一个需求,后端的一个接口的参数是List,List中的元素又是数组,相当于二维数组。但是二维数组无法直接转成Json格式传递。
搞了好一会儿,记录一下方法:
JsonData addressInfo = new JsonData();//创建一个addressInfo对象foreach (var item in companyInfo.address){JsonData dataArray = new JsonData();//在addressInfo中再创建一个对象dataArray["id"] = item.id;dataArray["address"] = item.address;addressInfo.Add(dataArray);//依次添加进addressInfo}jd["address"] = addressInfo;//赋值
Unity——写入和读取Json信息的方法相关推荐
- python操作文件的库_Python使用pyshp库读取shapefile信息的方法
通过pyshp库,可以读写Shapefile文件,查询相关信息,github地址为 https://github.com/GeospatialPython/pyshp#reading-shapefil ...
- python文件读写用到的库_Python使用pyshp库读取shapefile信息的方法
通过pyshp库,可以读写shapefile文件,查询相关信息,github地址为 import shapefile # 使用pyshp库 file = shapefile.reader(" ...
- python中pyshp_Python使用pyshp库读取shapefile信息的方法
通过pyshp库,可以读写Shapefile文件,查询相关信息,github地址为 import shapefile # 使用pyshp库 file = shapefile.Reader(" ...
- 小程序个人免费云函数和数据库读取json/txt文件方法
微信小程序个人免费云函数和数据库读取json/txt文件方法 1. 云开发环境的建立 2. 本地工程的云函数部署 3. 将待读取的数据上传到云端数据库 4. 本地云函数编写 5. 云函数的实际部署 6 ...
- Python写入、读取json文件
可以直接传入文件路径.文件名和字典数据,就可以在对应位置生成json文件.附代码如下: import json# 将字典类型数据写入json文件或读取json文件并转为字典格式输出 class Fil ...
- unity 使用UnityWebRequest读取Json文件
一.Json模板类 [Serializable] public class Settings {[SerializeField]public int Sleep;//等其他属性 } 二.读取 usin ...
- go语言读取json文件的方法
1.读取文件的代码 package mainimport ("encoding/json""fmt""io/ioutil""os& ...
- 根据json文件读取json信息
import json jsonobject = json.load(file('1222508030.json')) cnt = 0 for ele in jsonobject['result']: ...
- Windows 下读取DMI信息的方法
使用Windows自带的函数完成:GetSystemFirmwareTable() #include <Windows.h> #include <stdio.h> #inclu ...
最新文章
- 移动网站性能优化(未完。。。)
- 卷积神经网络理解及1*1卷积核的作用
- 以一致的体验交付和管理云原生多集群应用
- [转]C#中多路IP摄像机的视频监控系统
- php的数据模型包括,数据库中模型的分类有哪些
- python海贼王logo_Python 实现的下载op海贼王网的图片(网络爬虫)
- asp.net gridview 无法更新数据
- R语言——决策树模型
- 优麒麟 mysql_优麒麟18.10新特性预览—生物识别
- RNN(3) ------ “blog:RNN学习之路”
- Geotools解析shp文件
- Java八股文(高阶)背诵版
- PS4 Pro 拆机记
- DNS服务(二):域名劫持
- AcWing 225. 矩阵幂求和
- Android开发-WebView中实现Android调用JS JS调用Android 【三】
- Cisco(63)——多出口PBR+NAT解决方案
- 每秒处理10万订单支付架构
- 智慧农业大棚高效节水自动化灌溉系统
- 如何将class文件打包成.jar