Unity之数据持久化——Json

1、Json是什么

JavaScript对象简谱(JavaScript Object Notation)

json是国际通用的一种轻量级的数据交换格式,主要在网络通讯中用于传输数据,或本地数据存储和读取,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率

游戏中可以把游戏数据按照Json的格式标准存储在Json文档中,再将Json文档存储在硬盘上或者传输给远端,达到数据持久化或者数据传输的目的

Json和Xml的异同:

共同点:都是纯文本,都有层级结构,都具有描述性

不同点:Json配置更简单,Json在某些情况下读写更快速

注意:在以下代码中我存储的文件地址是StreamingAssets文件夹,但通常是使用Application.persistentDataPath,因为StreamingAssets文件夹在某些平台(例如Android)是不可写的

2、编辑Json文件的方式

(1)系统自带——记事本、写字板

(2)通用文本编辑器——Sublime Text等

(3)网页Json编辑器

我用的是vs code,可以直接编辑json文件

3、基础语法

注释和C#中注释方式一致,但是需要设置为”Json with Comments“ 的形式(在vs code右下角设置)

语法规则:

符号含义:

大括号{} 对象
中括号[] 数组
冒号: 键值对对应关系
逗号, 数据分割
双引号“” 键名/字符串
值类型 数字(整数或浮点)、字符串、true或false、数组、对象、null

Json格式是一种键值对结构,表示为:“键名”:值内容

以C#代码为例:

class ClassInfo {
    public string name;
    public int age;
    public bool sex;
    public List<int> ids;
    public List<Person> students;
    public Home home;
    public Person son;
}

class Person {
    public string name;
    public int age;
    public bool sex;
}

class Home {
    public string address;
    public string street;
}

 将ClassInfo类转换为Json格式为:

// 大括号包裹的代表一个对象
{
    // 冒号代表键值对的对应关系
    // 逗号就是分割成员变量的间隔符
    // Json当中的键一定要用双引号包裹,值是否用双引号由类型决定
    "name": "Waylon",
    "age": 18,
    "sex": true,
    "testF": 1.4,    // 用于测试支持浮点类型
    // 中括号代表数组
    "idx": [1,2,3,4],
    "students": [
        {"name": "Hong", "age": 5, "sex": false},
        {"name": "Ming", "age": 6, "sex": true},
        {"name": "Qiang", "age": 8, "sex": true}
        // 注意:最后一项不要加逗号,否则解析可能会出问题!!!
    ],
    "home": {
        "address": "Cheng",
        "street": "Chun"
    },
    "son": null
}

字典的键(数字)会变成双引号字符串形式,转换时要注意!!!

“dic":{“1”:“123”,“key":{"id":1, "num": 3}}

同时,Json中不会对private, protected进行解释

4、Excel转Json

暂时可以通过在线转换工具:

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值