本文原创,转载请注明出处: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. Django会话,用户和注册之用户认证

    通过session,我们可以在多次浏览器请求中保持数据, 接下来的部分就是用session来处理用户登录了. 当然,不能仅凭用户的一面之词,我们就相信,所以我们需要认证. 当然了,Django 也提供 ...

  2. pch文件的创建与配置

    1.ios中pch文件的创建与配置 1.1 ios中pch文件的创建与配置 1.2 全局宏定义标志的配置 2.宏定义 这里放的主要是开发中常用的宏定义. /** 动态的字符串格式化宏 */ #defi ...

  3. Spring core注解

    1.@Autowired Autowired是用在JavaBean中的注解,通过byType形式,用来给指定的字段或方法注入所需的外部资源 Autowired注解来指定自动装配,可以修饰setter方 ...

  4. C# 添加,修改,删除Xml节点

    //添加xml节点    private void AddXml(string image, string title)     {        XmlDocument xmlDoc = new X ...

  5. (Python OpenGL)【4】Uniform变量 PyOpenGL

    (Python OpenGL) 原文:http://ogldev.atspace.co.uk/www/tutorial05/tutorial05.html(英文) __author__ = " ...

  6. P4234 最小差值生成树 LCT维护边权

    \(\color{#0066ff}{ 题目描述 }\) 给定一个标号为从 \(1\) 到 \(n\) 的.有 \(m\) 条边的无向图,求边权最大值与最小值的差值最小的生成树. \(\color{#0 ...

  7. zookeeper客户端使用第三方(Curator)封装的Api操作节点

    1.为什么使用Curator? Curator本身是Netflix公司开源的zookeeper客户端: Curator  提供了各种应用场景的实现封装: curator-framework  提供了f ...

  8. Redis 工具类 java 实现的redis 工具类

    最近了解了一下非关系型数据库 redis 会使用简单的命令 在自己本地电脑 使用时必须先启动服务器端 在启动客户端 redis 简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内 ...

  9. 07. 如何实现移动端rem适配

    如何实现移动端rem适配 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  10. BZOJ 3631 松鼠的新家 树上差分

    我猜会有智障说直接链剖+线段树…(希望没有) From RYC's 课件 然鹅我并不反对树剖...我是智障...QAQ 好吧还是树上差分:设 a[i]=u.a[i+1]=v ++w[u],++w[v] ...