JSON基础

作者:XLuoxiany;原文:https://www.bilibili.com/read/cv15533561/

大家好我是落弦(皓天),专栏已经有一年没更新了()

最近不知为什么我之前的一些文章又重新被人翻了出来,而文章中常提到lemo大佬的json格式入门教学被大佬删了() 于是我决定自己写一遍json格式的入门教学。

这个教学主要面向Minecraft Addons与指令,非用作Minecraft请酌情阅读。

Json在Minecraft中的应用

包括指令中运用的nbt,材质贴图的索引文件,材质和行为包的manifest文件都使用json格式。

json格式的主要字符为 { 、 } 、 [ 、 ] 、 : 、 , 、 " 、"

Json语法

对象

对象在json中被{}包括。

一个对象由一组或多组键值对组成,键值对由字符串键、冒号和值组成,例如:

{"字符串键":"值"}

一个键值对 字符串键,顾名思义,只能是字符串。

值可以是数字、字符串、布尔值、数组或另一个字典。

多组键值对之间用逗号分割,例如

{"字符串键":"值","114514":"1919810"}

注意:最后一组键值对后面不加逗号

{"字符串键":"值","114514":"1919810","114514":"1919810"}

同一字符串键多次赋值时编译器会提醒,但这不影响json的解析。

json在解析时以最后一次赋值为准。(圈起来,后面要考)

一个json最外围必须是一个字典。

数字

数字和其它大多数编程语言一样,在json中不区分整数与浮点数。

{"114514": 1919810}

字符串

字符串同样与其它编程语言中一样。需要注意的是,json中只能使用""单对双引号作为字符串的标记。

{"114514": "哼哼哼哼哼啊啊啊啊啊啊啊啊"}

布尔值

布尔值

json中布尔值有三个:分别是true(真)、false(假)、null(空)。

规范的json语法中,布尔值首字母必须小写

{"abc":true},
{"dfe":false}
{"ghi":null}

数组

数组由中括号[]包围。

数组中每个项之间用//,//逗号分隔。

数组的每个项可以是字符串、数字、布尔值、对象或另一个数组。

{
    "一个数组": [
    true,
    false,
    null,
    114514,
    "1919810",
    ["另一个数组"],
    {"一个对象":""}
    ]
}

与对象一样,数组的最后一项后面没有逗号。

注释

Json中没有专门的注释方法。

坦白说,严格来说json格式根本就没有注释这种东西。

在不严格的json语法中(或json5+),你可以在你的json文档中使用//单行注释和/**/多行注释,但是往往在低版本中这些会出错。

记得/对象/的特性吗?

同一字符串键多次赋值时编译器会提醒,但这不影响json的解析。

json在解析时以最后一次赋值为准。

借助这个特性,我们可以作出“伪注释”

{
  "codepage": 1
  "A": "我是注释"
  "A": 114514
}

即通过两次赋值来达到注释的效果。

或者你嫌黄色波浪线不好看?还是容易搞混太麻烦?

那么其实可以使用"//"作为字符串键声明键值对来作为注释。

{
  "number": 1919810
  "//": "我是注释//"
}

Json的内容就这么多~

那么我们下辈子(划)下期专栏再见

最后更新于