JSON规范教学

1.定义

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。

2.符号

标准JSON的合法符号: {(左大括号)
}(右大括号)
"(双引号)
:(冒号)
,(逗号)
](右中括号)
[(左中括号)

3.从属关系

一般来说,json的括号是有包含关系的。不能依据自己的喜好随意删除,修改括号。比如:
[{"data":"1"}]
[{"data":"1","status":"2"},{"data":"2","status":"3"}]
[]中只能存在由包含的组,不能直接包含""
中能存在或"":"",不允许存在[]

4.语法

简单来说,所有的左括号都必须有右括号和它对应
但是,要注意的是逗号的用法。每个括号里面的东西,必须用,隔开,不允许在最后添加,
例如:

[{  
	{  
		"data" = "2333",  
		"Test" = "1234"  
	},{  
		"data" = "2333"  
	}  
}],  
{  
	"data666" = "2333"  
}  

这样的是一个可用的json格式,牢记上面的两条,你就能做到自查json的错误啦~

5.一些小问题

一般来说,大部分开发者在readme中留下的示例配置(包括本教程)都是需要修改才能使用的,比如

"platforms": [
	{
		"platform": "Test2Platform",
		"deviceCfgs": [{
			"type": "ColorLEDBulb",
			"ip": "192.168.50.xxx",
			"token": "xxxxxxxxx",
			"Name": "LED Bulb"
		}]
	}
] 

这种情况,使用在你的config中就需要进行相应更改,比如

"platforms": [
	{
		"platform": "TestPlatform",
		"deviceCfgs": [{
			"type": "ColorLEDFan",
			"Name": "LED Bulb"
		}]
	},{
		"platform": "Test2Platform",
		"deviceCfgs": [{
			"type": "ColorLEDBulb",
			"Name": "LED Bulb"
		}]
	}
]

简单来说,就是需要拆掉最外面的platforms,然后将里面的东西写入进原先的platforms中。一个config.json只能有一个platforms!!!!
如果还是看不懂,那么最简化的结构如下

"platforms": [
    {
        "platform": "TestPlatform"
    },{
        "platform": "Test2Platform"
    }
]

一个platforms可以包含多个platform,一个config.json只能有一个platforms,切记切记(这句是废话)