请选择 进入手机版 | 继续访问电脑版
查看: 753|回复: 8

[技巧教程] 【我们一起学习JSON】JSON教程

[复制链接]
回帖奖励 66 金锭 回复本帖可获得 3 金锭奖励! 每人限 1 次

23

主题

301

帖子

110

积分

Lv.4 怪物猎人

UID
4500435
小麦
8
金锭
241
下界之星
0
发表于 2019-6-21 22:43:42 | 显示全部楼层 |阅读模式
本帖最后由 wu_tian 于 2019-6-24 21:12 编辑

HI!我是wu_tian,最近沉迷于UNITY无法自拔了,so...emm,不过我还是关注着我的世界的。
前言:
最近我在unity里用到了一些数据需要储存,所以便发现不学储存方式不可了!于是我遇到了三个选择:

1.XML
2.JSON
3.二进制储存法


作为一名Minecraft玩家不用说肯定也是JSON,不过我这里的JSON有个第三方API(LITJSON.DLL),所以储存起来也比这个XML简单多了(虽说可读性差一点,可我觉得还行),然后二进制储存法也是可以直接用API转化的,不过二进制文件我们常人是无法直接看的,so,我选择了JSON。


初识概念:
(首先呢,我先说一下,JSON这种东西里的数据每个游戏都有每个关键字,至于关键字干嘛的,我也不知道,所以说对于我的世界的进度等等的JSON文件我也是一脸懵,这里我强烈推荐去看Minecraft Wiki(就和看UNITY API手册一个道理)
回到正题,下面,就先听我念叨一下新手可能听不懂的东西:
JSON是一种轻量级的数据交换和储存的格式,它使用的储存方式是“键值对”,然后呢支持的语言有:
c++
c#
java
......
然后他支持的数据类型有:
int
double
string
bool
等等类型
//但请注意:LITJSON不支持float类型的储存。
于是我先给个很简单的解决这个不支持的方法:
源代码是:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using LitJson;

namespace test
{
    class Program
    {
        public static float numF; //定义一个静态的字段,起名字为numF(至于什么是静态,不用理会,我们也用不到)
        static void Main(string[] args)
        {
            numF = 15.1551f; //将其赋值为15.1551
            JsonData jsonData = new JsonData(); //开辟一块新的类型为JsonData的空间,并给起一个名字叫做 jsonData
            jsonData["Test"] = new JsonData(); //为我们的jsonData["Test"]开辟一块新空间
            jsonData["Test"] = numF.ToString(); //将numF显示(强制)转换为string类型,并赋值给jsonData["Test"]

            //提取
            Console.WriteLine(float.Parse(jsonData["Test"].ToString())); //然后读取jsonData["Test"],并且显示(强制)转换为string类型,再将string类型显示(强制)转换为float类型

            Console.ReadKey();
        }
    }
}



那我我再解释一下上面这句话“JSON是一种轻量级的数据交换和储存的格式,它使用的储存方式是“键值对”


轻量级的意思呢就是那种比较小型的数据,就是float,int的那些类型。
然后呢我们在看下数据交换和储存,如果各位能看懂上面的代码,那就差不多能理解了,简单的来说就是这个格式能被读取和保存。
然后就是键值对,这个就是json的语法(讲了这么久,总算是给我讲到这个语法了):
{
   "":"",
   "":""

}
这就是它最基本的格式。
可能有些人会有些不理解什么是键,什么是值,那我把他们换成英文你们再看看:
"key":"value"
key == 钥匙
value == 这个钥匙里的东西


也就是 键=关键字
值 = 数值


是不是有点感触,键就是查找这个东西的关键词,而值就是它的数据!


所以说,我们的基本的json语法也就是这样,是不是很简单?


留个作业:试着手写一个简单的json文本格式,如果想查验是不是对的,可以访问这个网址
json在线解析及格式化验证器

如果想要展示可以在留言展示,我还要期末考试,估计下次更新就是万年以后......

其实:只有先真正的理解了json,写代码才不会迷迷糊糊

下次更新,打算教一下json中的数组和什么什么的..(时间大概在这周星期五)

1

主题

11

帖子

4

积分

Lv.1 新手木匠

UID
371406
小麦
0
金锭
47
下界之星
0
发表于 2019-8-6 14:56:14 来自手机 | 显示全部楼层

回帖奖励 +3 金锭

厉害

1

主题

63

帖子

17

积分

Lv.1 新手木匠

UID
272637
小麦
0
金锭
124
下界之星
0
发表于 2019-8-6 14:59:38 | 显示全部楼层

回帖奖励 +3 金锭

这是mc不是编程呵呵

1

主题

10

帖子

3

积分

Lv.1 新手木匠

UID
6041731
小麦
-1
金锭
57
下界之星
0
发表于 2019-10-26 21:19:47 | 显示全部楼层

回帖奖励 +3 金锭

水一下awa

0

主题

62

帖子

17

积分

Lv.1 新手木匠

UID
6130037
小麦
0
金锭
163
下界之星
0
发表于 2019-11-23 09:42:28 | 显示全部楼层
666

0

主题

62

帖子

17

积分

Lv.1 新手木匠

UID
6130037
小麦
0
金锭
163
下界之星
0
发表于 2019-11-23 09:42:50 | 显示全部楼层
666

0

主题

62

帖子

17

积分

Lv.1 新手木匠

UID
6130037
小麦
0
金锭
163
下界之星
0
发表于 2019-11-23 09:44:35 | 显示全部楼层

回帖奖励 +3 金锭

161

主题

6155

帖子

2559

积分

Lv.8 凋零克星

UID
5416120
小麦
841
金锭
2343
下界之星
1
发表于 2019-11-30 16:38:38 | 显示全部楼层

回帖奖励 +3 金锭

厉害~~~

2

主题

13

帖子

5

积分

Lv.1 新手木匠

UID
5877859
小麦
0
金锭
24
下界之星
0
发表于 2020-1-4 19:53:37 | 显示全部楼层
666
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部