这是json.
"{
'places': [
{
'name': 'New\x20Orleans,
\x20US\x20\x28New\x20Lakefront\x20\x2D\x20NEW\x29',
'code': 'NEW'
}
]
}"
Run Code Online (Sandbox Code Playgroud)
我得到了json parsererror.我正在检查http://jsonlint.com/,它显示以下错误
Parse error on line 1:
"{ 'places': [
^
Expecting '{', '['
Run Code Online (Sandbox Code Playgroud)
请解释一下json有什么问题,我是否要更正?
如果你的字面意思是字符串作为一个整体,是你的JSON文本(包含非JSON的东西),有三个问题:
它只是一个JSON 片段,而不是一个完整的JSON文档.
字符串中的文字换行符在JSON中无效,请使用\n.
\x是JSON字符串中的无效转义序列.如果您希望包含的非JSON文本具有\x转义(例如,当您读取整个字符串的值并解析它时),则必须转义该反斜杠:\\x.
在完整的JSON文档中,顶级必须是对象或数组:
{"prop": "value"}
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
大多数JSON解析器都支持解析片段,例如独立字符串.(例如,JavaScript JSON.parse支持这一点.)但是,http://jsonlint.com正在进行完整的文档解析.
这是你的片段包裹在一个带有换行符和\x处理问题的对象中:
{
"stuff": "{\n 'places': [\n {\n 'name': 'New\\x20Orleans,\n \\x20US\\x20\\x28New\\x20Lakefront\\x20\\x2D\\x20NEW\\x29',\n 'code': 'NEW'\n }\n \n ]\n }"
}
Run Code Online (Sandbox Code Playgroud)
文本中的字符串也没有有效的JSON,但也许它并不意味着是.为了完整性:JSON要求所有键和字符串都是双引号("),而不是单引号(').它也不允许在字符串文字中使用文字换行符(\n改为使用),并且不支持\x转义.有关详细信息,请参见http://json.org.
这是一个有效的JSON版本,\x转换为正确的JSON \u转义:
{
"places": [
{
"name": "New\u0020Orleans,\n\u0020US\u0020\u0028New\u0020Lakefront\u0020\u002D\u0020NEW\u0029",
"code": "NEW"
}
]
}
Run Code Online (Sandbox Code Playgroud)
...这些逃脱实际上都是定义完全正常的角色,所以:
{
"places": [
{
"name": "New Orleans,\n US (New Lakefront - NEW)",
"code": "NEW"
}
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8056 次 |
| 最近记录: |