本文原创,转载请注明出处: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. c# ftp创建文件(非上传文件)

    c#  ftp创建文件(非上传文件) 一.奇葩的故事: 今天项目中遇到这么个奇葩的问题,ftp文件传输完成后要在ftp目录下另一个文件夹下创建对应的空文件,听说是为了文件的完整性,既然这么说,那么就必 ...

  2. Nginx入门介绍与安装

    Nginx是什么? Nginx是俄罗斯人编写的十分轻量级的HTTP和反向代理服务器.发音:"engine X" Nginx能干什么? (1)Http反向代理 Nginx 支持正则表 ...

  3. Centos7 调整磁盘空间

    1. 查看磁盘空间占用情况:  df -h 可以看到 /home 有很多剩余空间, 而节点较少. 2. 备份 /home 下的内容: cp -r /home/ homebak/ 3. 关闭home进程 ...

  4. 字符串格式化str.format

    一.字符串格式化之str.format 1.位置参数:用{0},{1},{2}表示位置 v1 = '{1},{0},{1}'.format('a','b') #输出b,a,b 2.关键词参数:用{na ...

  5. Gym - 101845F 最大流

    The UN finals are here!, the coaches/ex-coaches team is creating a new exciting contest to select wh ...

  6. CF580D Kefa and Dishes 状压dp

    When Kefa came to the restaurant and sat at a table, the waiter immediately brought him the menu. Th ...

  7. 16.Shortest Unsorted Continuous Subarray(最短未排序子数组)

    Level:   Easy 题目描述: Given an integer array, you need to find one continuous subarray that if you onl ...

  8. 4.Single Number(出现一次的数)

    Level:   Easy 题目描述: Given a non-empty array of integers, every element appears twice except for one. ...

  9. poj2001 Shortest Prefixes(字典树)

    Shortest Prefixes Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 21642   Accepted: 926 ...

  10. Linux 系统排错

    ##root用户密码的修改 重启时按上下键打断引导,按“e”进入内核引导 在linux16行删除至途中所示位置,并进行修改: 修改完毕后按“ctrl+x”启动 进入系统切换到真实环境,开始修改root ...