Unity C# 使用JsonUtility读写Json文件

unity使用自带的JsonUtility解析在网页上的json文件 using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test : MonoBehaviour { string url = "自己放在网页上的json文件地址"; void Start() { ... 阅读详情

本文原创,转载请注明出处:http://www.cnblogs.com/AdvancePikachu/p/7146731.html 

 

今天,为大家分享一下unity上的Json序列化,应该一说到这个词语,我们肯定会觉得,这应该是很常用的一个功能点;诚然,我们保存数据的时候,也许会用到json序列化,所以,我们有必要快速了解一下它的简单用法。

     1.首先,我们直接新建unity项目,然后新建一个InputData.cs 数据结构类;

代码如下:

 1 [Serializable]
 2 public class InputData 
 3 {
 4     public InputDataEntry[] data;
 5 }
 6 
 7 [Serializable] 8 public class InputDataEntry 9 { 10 public string name; 11 public int age; 12 }

2.然后建一个AppManager.cs的组件类  

         

 AppManager.cs 代码如下:

 

 1 public class AppManager : MonoBehaviour {
 2 
 3     InputData _inputDate = new InputData ();
 4 
 5     InputData inputDate 
 6     {
 7         get
 8         { 
 9             return _inputDate; 10  } 11 set 12  { 13 _inputDate = value; 14  } 15  } 16 17 string path; 18 bool truename; 19 20 void Start () 21  { 22 path = Application.dataPath + "/Resources/inputdate.json"; 23 24 if (LoadFromFile () != null) 25 inputDate = LoadFromFile (); 26  } 27 28  InputData LoadFromFile() 29  { 30 if (!File.Exists (path)) 31 return null; 32 33 StreamReader sr = new StreamReader (path); 34 35 if (sr == null) 36 return null; 37 38 string json = sr.ReadToEnd (); 39 40 if (json.Length > 0) 41 return JsonUtility.FromJson<InputData> (json); 42 43 return null; 44  } 45 46 47 void OnApplicationQuit () 48  { 49 string json = JsonUtility.ToJson (inputDate, true); 50  File.WriteAllText (path, json, Encoding.UTF8); 51  } 52 53 public void RangNumber() 54  { 55 InputDataEntry[] ide = new InputDataEntry[1]; 56 ide [0] = new InputDataEntry (); 57 ide [0].age = Random.Range (18, 26); 58 59 if (truename) 60 truename = false; 61 else 62 truename = true; 63 64 ide [0].name = truename ? "AdvancePikachu" : "进击的皮卡丘"; 65 inputDate.data = ide; 66 67 Debug.Log ("age :" + ide [0].age + "\n name :" + ide [0].name); 68  } 69 }

 

  3.然后,我们可以直接运行编辑器看效果!

       

 

如下的json文件的内容:

大致的读取与写入功能已经写好,详细的内容与具体的实现就不罗嗦了!

      

Unity中处理json数据(插件litjson和自带JsonUtility的两种) 近期项目中需要处理json数据,可是又偷懒不想写json处理脚本,从网上找了个插件litjson用的还不错。 1.下载litjson(一个dll文件) 2.在unity中导入,以import new assert的形式导入 3.实例使用脚本...... 阅读详情

相关推荐

【Unity数据交互】JsonUtility的“爱恨情仇“

JsonUtlity进行序列化

秩沅 1046

【Unity数据持久化_Json】(三)C#读取存储Json文件-Jsonutility是什么?Jsonutility序列化和反序列化

1.Jsonutility是什么? 2.补充:在文件中存读字符串 3.使用Jsonutility进行序列化 4.使用Jsonutility进行反序列化 5.注意事项

我的博客 2462

Python高效转换病理图像:从mrxs到SVS的完整实践指南

本文提供了使用Python将数字病理切片从mrxs格式高效转换为SVS格式的完整实践指南。针对mrxs格式兼容性差的问题,文章详细解析了基于openslide和tifffile库的核心转换流程,并重点分享了应对大内存消耗的优化方案与流式处理技巧,确保转换后的SVS文件保留多分辨率金字塔结构,兼容主流病理分析工具。

weixin_29051811的博客 547

JSON解析的两种方法

一直比较钟情于json,用来做数据交互,堪称完美!下面简单说一下unity使用C#脚本如何解析json数据吧。 一、写解析类,借助于JsonUtility.FromJson 直接给个例子吧 1.json文件testJson.json内容,存储位置/Users/lpp/Downloads/testJson.json 1 2 3 4 5 ...

qq_40832835的博客 416

Oracle19c-集群节点重新添加

Oracle RAC集群在极端情况下,如硬件、主机,集群软件损坏,导致集群节点永久无法使用,需要对集群节点进行修复,删除节点集群信息并重新加入集群,以恢复集群原有的架构。 本文主要讲述一套两节点的Oracle19c RAC集群,节点一orcl01由于主机异常无法正常启动,在对主机进行重装之后,需要将orcl01节点重新加入集群的操作步骤。环境信息: 操作系统:Linux 7 RAC集群:19C 主机节点:orcl0...

sinat_36757755的博客 2350

量化交易新手必看:如何用Python快速接入XTP极速交易系统(附避坑指南)

本文为量化交易新手提供了使用Python快速接入中泰证券XTP极速交易系统的完整指南。文章详细介绍了XTP系统的微秒级性能优势、与CTP系统的核心区别,并逐步讲解了环境配置、API连接、资金查询、下单撤单等关键步骤,同时分享了网络维护、订单处理等实战避坑技巧,帮助开发者高效对接专业交易柜台。

life6的博客 659

Json实用工具 -JsonUtility

可能需要引用几个DLL,Newtonsoft.Json、System.Runtime.Serialization、System.ServiceModel、System.ServiceModel.Web、格式储存文件的测试,于是就写了这个常用的工具类。因为前一段时间在客户现场经常需要连接客户。系统使用的数据格式又跟。

qq_39143064的博客 173

企业固定资产管理的SAP实战:FICO模块配置与折旧范围设置详解

本文深入解析了SAP FICO模块中固定资产会计配置的核心实践,重点阐述了折旧范围的设计哲学与配置逻辑。通过详解折旧表、折旧范围、资产分类及折旧码等关键配置步骤,指导企业如何搭建满足多会计准则(如CAS、IFRS)与税务要求的资产管理体系,实现资产购置、折旧计提与报废清理的自动化与精准化。

wdx01234567的博客 727

c# Json文件操作(用unity自带的JsonUtility来进行序列化)

一、检查路径中的Json文件是否存在,不存在则新建 /// <summary> /// // 判断是否已有相同文件,没有就新建 /// </summary> /// <param name="path"></param> /// <returns></returns> public bool CheckJsonPath(string path) { if (!File

梦想是世界和平 974

【最全】ISTQB- FL模拟题(含答案)

汇总收集的所有ISTQB基础级考题和答案

maoxuexue的博客 1万+

3D视觉引导技术在机器人焊接中的应用

通过对比传统的2D视觉和3D视觉技术在焊接领域的应用差异,探讨了3D视觉引导技术在提高焊接精度、适应不规则工件形状和增强自适应能力方面的优势。本文对3D视觉引导技术在机器人焊接中的应用进行了深入探讨,总结了其在提高焊接精度、适应不规则工件形状和增强自适应能力方面的优势,并通过应用案例展示了其在焊接路径规划、焊缝检测和焊接质量控制等方面的重要作用。1. 提高焊接精度:3D视觉引导技术能够精确测量焊接工件的三维形状和位置,为机器人提供精准的焊接路径规划和跟踪,从而提高焊接精度。三、3D视觉引导技术概述。

2302_79273122的博客 1835

Unity C# 使用JsonUtility读写Json文件

unity c#

翻肚鱼儿的博客 320

C#跨平台制图新纪元:Mapsui,一库在手,地图我有

深入学习Mapsui的渲染机制,定制属于你的地图样式,无论是颜色、图标还是文字,都可以随心所欲。

java专栏 1455

Unity3d进阶学习(11)-- Excel与Json的读写、转换

一、Excel的读写 Epplus介绍 EPPlus是一个使用Open Office XML(xlsx)文件格式,能读写Excel 2007/2010 文件的开源组件,在导出Excel的时候不需要电脑上安装office,官网:http://epplus.codeplex.com/。需要使用的Epplus的DLL文件,从官网上下载下来即可。基本上Excel上的各种功能(例如图表、VBA、数据透...

醉翁亭 3483

Modis数据处理工具:MRT百度网盘下载和手把手图文安装教程

如下图所示为MODIS Reprojection Tool(MRT)的软界面,看似简单,却是Modis遥感影像必不可少的处理工具,如投影变换等。本文以图文并茂的形式,详细讲解MRT软件在Windows10平台上的安装过程,并附MRT软件百度网盘下载地址。 Modis Tool主界面: 一、安装过程 1、安装Java运行环境 双击Java.exe,安装运行环境。默认的安装路径为C:\Program Files (x86)\Java\jre6\bin,后面需要用到这个路径。 等待...

智慧空间实验室 2621

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Unity 关于安卓和各平台读写本地json文件,WWW读取本地文件,Unity各路径API(persistentDataPath,StreamingAssets文件夹),目前较完整的详解

关键点: ···C# API  (StreamReader\ StreamWriter \ System.Text.Encoding\String.Split) ···Unity API ( JsonUtility.fromjson \jsonUtility.tojson \ WWW ) ··UnityAPI 提供的路径参考(常用的): Application.dataPath  Appl...

lwsas1的专栏 1628

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Unity数据持久化-Json

文章目录JSON概念:JSON结构:JSON优势:与JavaScript的关系:Unity方法:使用JsonUtilityJson存储Json加载:注意事项:完整代码参考: JSON概念: JSON(JavaScript Object Notation)一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。可在不同平台之间进行数据交换。JSON采用兼容性很高的、完全独立于语言文本格式,同时也具备类似于C语言的习惯体系的行为。这些特性使JSON成为理想的数据交换语言。 JSON结构: JSON语法是j

euphorias的博客 649

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Unity中使用JsonUtility解析Json

首先,写好Json文件,语法可以参考这里http://www.runoob.com/json/json-tutorial.html 举例: 记得另存为保存为UTF-8格式(否则中文数据会乱码)   模型类: using System.Collections.Generic; using System.IO; using System; [Serializable] public c...

AMalways的博客 6461

Unity | 使用JsonUtility解析Json

一、使用注意事项: 被转换的对象必须是可被序列化的,需要标记[System.Serializable] 属性; JsonUtility.FromJson 方法只能接受 json 对象,如果是 json 数组会提示错误: JSON must represent an object type。 二、要解析的Json数据: { "stat": 1, "status": 1, "msg":...

该用户还没想到好的昵称的博客 2783

Unity自带Json解析库——JsonUtility

一:介绍 JsonUtility是Unity自带的一个类,很简单,效率高,不依赖第三方的库,但是对于一些复杂的要求还是需要导入第三方库去实现。 二:用法与弊端: 之所以不常用Unity自带的类去实现Json操作是因为它存在很多的弊端:1.JsonUtility.FromJson方法只能接受json对象,不能接受Json数组 //Json文件中:定义一个两个对象的数组 [ { "name"...

L的博客 7750

Unity使用JsonUtility读写Json文件

json文件如下 { "configitemList ": [ { "item1": "item1", "item2": "item2", "item3": "item3", }, { "item1": "item1", "item2": "item2", "item3": "item3"...

LuffyZ的博客 628

JsonUtility解析json文件

下面就直接看Demo的代码吧就不多介绍了代码中要注意的点都已经有注释了平成用这我也没用过这个方式只是心血来潮就学习一波在这做个笔记 注意:右上角的两个按钮功能还没实现,保存和读档也不是特别难相信再看博客的你已经会做了。 这个是要解析的json表自己随便写的凑合用吧能实现效果就行了 { “DaraItem”: [ { “Name”: “盖伦”, “Hp”: [ 100, 200, 500 ], “...

不会掉头发的程序猿 1804

Unity——JSON

Json支持的数据结构 数字型:short,int,long,float,double 字符串:“abc”,“你好”,‘abc’ 布尔类型:true,false null:null 数组(列表):[值1,值2] 对象(字典):{"键1":"值1","键2":"值2"} 字符含义 大括号组:对象,字典 中括号组:数组,列表 冒号...

m0_51743362的博客 1万+

使用JsonUtility在Unity中写入json数据

1.在Asset目录中新建一个脚本,命名为StudentItem,写入以下代码 using System.Collections; using System.Collections.Generic; using UnityEngine; [System.Serializable] public class StudentItem { public int id; public...

ultramansail的博客 1765

unity 使用JsonUtility读取json

JsonUtility是unity自带的json解析工具 //定义item类 //暂且这样理解:根据json文件里的文件类型定义 [System.Serializable] public class Item { public int id; public string name; public string sprite; } // 接受 api 返回的 json 数据 [System.Serializable] public class ItemData { .

Dore__的博客 943
上一篇: Unity C# 反射
下一篇: Unity C# string 与byte 直接的转换
AdvancePikachu
博客等级 码龄10年 10粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值