JSON 错误:"预期为'字符串', '}',得到'未定义'"



EDIT:我把单引号改成了双引号,linters没有抱怨。

我把这个放进了jsonlint.com,我得到了这个错误:

Error: Parse error on line 1:
{   'bandwidth_in': {       
--^
Expecting 'STRING', '}', got 'undefined'

其他json linter也有类似的结果。最初,数值是空的,所以我把它们用单引号括起来,以消除jq错误:

parse error: Invalid numeric literal at line 2, column 16

但我还是能理解jq。

我没有看到任何未定义的键,我缺少什么?

{
'bandwidth_in': {
'GE4': {
'value': '16292',
'tree': {
'2': {
'name': 'GE4',
'key': 'GE4',
'attributes': {
'snmp_index': 'GE4'
}
}
},
'attributes': {
'bandwidth': '15157250.0'
}
}
},
'bandwidth_out': {
'GE4': {
'value': '14616',
'tree': {
'2': {
'name': 'GE4',
'key': 'GE4',
'attributes': {
'snmp_index': 'GE4'
}
}
},
'attributes': {
'bandwidth': '15150500.0'
}
}
},
'jitter_in': {
'GE4': {
'value': '0.0',
'tree': {
'2': {
'name': 'GE4',
'key': 'GE4'
}
}
}
},
'jitter_out': {
'GE4': {
'value': '0.002',
'tree': {
'2': {
'name': 'GE4',
'key': 'GE4'
}
}
}
},
'latency_in': {
'GE4': {
'value': '0.001',
'tree': {
'2': {
'name': 'GE4',
'key': 'GE4'
}
}
}
},
'latency_out': {
'GE4': {
'value': '0.003',
'tree': {
'2': {
'name': 'GE4',
'key': 'GE4'
}
}
}
},
'packetloss_in': {
'GE4': {
'value': '0',
'tree': {
'2': {
'name': 'GE4',
'key': 'GE4'
}
}
}
},
'packetloss_out': {
'GE4': {
'value': '0',
'tree': {
'2': {
'name': 'GE4',
'key': 'GE4'
}
}
}
}
}

我还在网上看到了一个参考,即不允许使用裸数字作为键,可以公平地说,任何具有非字符串键的JSON都不应该通过测试吗?

正如雷米·拉博所说的

字符串不支持单引号作为分隔符,只支持双引号。

当您有一个包含内联JSON的字符串时,您有一些选项:

外部双引号和内部转义双引号

sJson=";{"键":"值"};

外部单引号

sJson="{"键":"值"}">

相关内容

  • 没有找到相关文章

最新更新