本文原创,转载请注明出处: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 C# 使用JsonUtility读写Json文件的更多相关文章

  1. python 读写json文件(dump, load),以及对json格式的数据处理(dumps, loads)

    JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. 1.json.dumps()和json.loads()是json ...

  2. 在Unity中使用LitJson解析json文件

    LitJson 这个库需要找资源,找到LitJson.dll后将它放在Assets文件夹下,在脚本中使用using引入即可 测试代码 json文件: {"Archice":[{&q ...

  3. iOS 如何用JSONKit读写JSON文件

     如何用JSONKit读写JSON文件 分类: ios2013-04-20 12:46 510人阅读 评论(0) 收藏 举报 JSON文件格式简单,使用方便,值得一用. 目前已经有多个库支持Json文 ...

  4. python 读写 json文件

    json的优势: 1. 数据体积方面. JSON相对于XML来讲,数据的体积小,传递的速度更快些. 2. 传输速度方面. JSON的速度要远远快于XML 3. 数据格式 数据格式比较简单, 易于读写, ...

  5. java如何读写json文件

    在实际项目开发中,有时会遇到一些全局的配置缓存,最好的做法是配置redis数据库作为数据缓存,而当未有配置redis服务器时,读取静态资源文件(如xml.json等)也是一种实现方式,但是这有一个弊端 ...

  6. Unity 用C#脚本读取JSON文件数据

    读取JSON文件数据网上有很多方法吗,这里采用SimpleJSON,关于SimpleJSON的介绍参考以下链接:http://wiki.unity3d.com/index.php/SimpleJSON ...

  7. node读写json文件(进阶)

    该方法可用于修改配置文件,直接上代码 fs.readFile('test1.json','utf8',function (err, data) { if(err) console.log(err); ...

  8. C++通过jsoncpp类库读写JSON文件-json用法详解

    介绍: JSON 是常用的数据的一种格式,各个语言或多或少都会用的JSON格式. JSON是一个轻量级的数据定义格式,比起XML易学易用,而扩展功能不比XML差多少,用之进行数据交换是一个很好的选择. ...

  9. Python3读写JSON文件

    JSON简介 JSON(JavaScript Object Notation)即JavaScript对象表示法,一种轻量级,通用的文本数据格式. JSON语法支持对象(Object),数组(Array ...

随机推荐

  1. Kotlin 数据类型(数值类型)

    Kotlin 的常见数据类型: 类型 范围 byte -128~127 short 32767-32768 int -2147483648~2147483647 long 92233720368547 ...

  2. 注解和注释以及Spring和SpringMVC常用的注解

    1.两者区别 注解 :参与代码编译,以@开头的.它是给应用程序看的,单独使用注解毫无意义,一定要跟工具一起使用,这个所谓的工具实际就是能读懂注解的应用程序 注释 :对代码没有影响.对代码起到解释.说明 ...

  3. Crontab 驱动 Scrapy 定时任务

    做了个爬虫去定时抓自己发布在cnblogs更新的文章,考虑用corntab定时任务驱动 crontab 任务配置 crontab配置规则就不啰嗦了,网上很多介绍,规则很容易功能却很强大. 然后我发现只 ...

  4. poj1681(枚举or高斯消元解mod2方程组)

    题目链接: http://poj.org/problem?id=1681 题意: 有一个包含 n * n 个方格的正方形, w 表示其所在位置为白色, y 表示其所在位置为黄色. 对 (i, j) 位 ...

  5. T-Sql操作Xml数据(转)

    T-Sql操作Xml数据 一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和 ...

  6. DP【洛谷P3135】[USACO16JAN]堡哞Fort Moo

    [洛谷P3135][USACO16JAN]堡哞Fort Moo Bessie和她的朋友Elsie正在建筑一个堡垒,与任何一个好的堡垒一样,这个需要一个强固的框架.Bessie想造一个轮廓是1m宽的空心 ...

  7. 「洛谷P3768」简单的数学题 莫比乌斯反演+杜教筛

    题目链接 简单的数学题 题目描述 输入一个整数n和一个整数p,你需要求出 \[\sum_{i=1}^n\sum_{j=1}^n (i\cdot j\cdot gcd(i,j))\ mod\ p\]  ...

  8. HDU1253 胜利大逃亡 (BFS)

      胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  9. 查看详细linux系统信息的命令和方法

    查看内存大小: cat /proc/meminfo |grep MemTotaluname -a # 查看内核/操作系统/CPU信息的linux系统信息命令head -n 1 /etc/issue # ...

  10. ubuntu下vnc部署安装

    ubuntu下vnc部署安装,参考如下博客:https://www.cnblogs.com/xuliangxing/p/7642650.html https://jingyan.baidu.com/a ...