我偶然发现了以下列方式构建的.json文件:
"property1":"graph_example"
"property2":false
"property3":true
"property4":null
{ "objectType": "some_type", "name": "name_1", "operation": "operation_1", "numericValue": 3}
{ "objectType": "some_type", "name": "name_2", "operation": "operation_2", "numericValue": 4}
{ "objectType": "some_type", "name": "name_3", "operation": "operation_3", "numericValue": 1, "dependencies": [{"name":"operation_1","amount":10},{"name":"operation_2","amount":10}] }
该文件描述了一个优先级图,其中name_3
依赖于name_1
和name_2
。我试图用Java对其进行反序列化(使用Jackson),但我认为它不是一个合适的JSON。元素不包含在任何类型的列表中,并且没有逗号分隔条目。有些元素不是必需的 - 如果元素没有依赖关系,那么依赖关系列表就会丢失。我尝试用来生成POJO的http://www.jsonschema2pojo.org/在此结构中找不到任何数据。或者它是一些特殊的JSON格式?
答案 0 :(得分:3)
不,不是。
缺少封闭的{}
,有些项目缺少各自的密钥。
最后三行是三个独立的有效json文档,如果它们被{}
括起来并且以逗号分隔,则前5行有效。
答案 1 :(得分:2)
它看似有效CSON ,但它需要在开头和结尾添加 {
和}
。我跑了这个:
CSON.parseFileSync("test.cson");
......我得到了回复:
{ objectType: 'some_type',
name: 'name_3',
operation: 'operation_3',
numericValue: 1,
dependencies:
[ { name: 'operation_1', amount: 10 },
{ name: 'operation_2', amount: 10 } ] }
击> <击> 撞击>
乍一看,看起来像一样有效CSON。但是,显然不是这样,基于事实上只有文件的最后一行才被实际成功解析。
当我尝试在文件内容周围添加{
和}
时,为了让解析器将其视为一个完整的对象,我得到了这个结果:
{ [SyntaxError: unexpected {]
location:
{ first_line: 7,
first_column: 0,
last_line: 7,
last_column: 0 },
toString: [Function],
code: '{\n"property1":"graph_example"\n\n"property2":false\n"property3":true\n"property4":null\n\n{ "objectType": "some_type", "name": "name_1", "operation": "operation_1", "numericValue": 3}\n{ "objectType": "some_type", "name": "name_2", "operation": "operation_2", "numericValue": 4}\n{ "objectType": "some_type", "name": "name_3", "operation": "operation_3", "numericValue": 1, "dependencies": [{"name":"operation_1","amount":10},{"name":"operation_2","amount":10}] }\n}',
filename: '/home/mmkatz/test.cson' }
这似乎是因为文件中的少数几项应该是一个数组,但它们周围没有[
和]
。
最后,我将不得不说这是某种自定义格式,与JSON或CSON只有偶然的相似之处。