我正在使用一个为谷歌地图编码多边形的 MySQL 数据库。当我尝试将查询作为 json 返回时,jsonlint 抱怨......我不知道它为什么抱怨,我确实尝试在 latlon 中转义“}”,但仍然遇到相同的错误。
第 20 行解析错误:
... "latlon": "}ciuF|a|pNcUr@d@es@
-----------------------^
期待 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['
我的 json 是:
{
“地图”:[
{
"group_id": "0",
"user_id": "113",
“团队名字”: ””,
“笔记”: ””,
"field_id": "",
"field_name": "西牧场",
"field_notes": "",
"date_created": "12/31/2012",
“英亩”:“”
}
],
“多边形”:[
{
"polygon_id": "",
"field_id": "1",
"英亩": "92",
"latlon": "}ciuF|a|pNcUr@d@es@fIHXaNtCn@UxCjMlApAfFuBpI}E\ChJdEl@xAtE"
}
]
}
Den*_*nis 10
问题是在 C 之前有一个斜杠,它不是有效的转义序列。
"}ciuF|a|pNcUr@d@es@fIHXaNtCn@UxCjMlApAfFuBpI}E \ChJdEl@xAtE"
JSON.parse('"\\C"');
Run Code Online (Sandbox Code Playgroud)
这会给你一个语法错误,因为它试图解析字符串\C。如果您想\在属性值中使用文字,则需要对其进行转义。
"latlon": "}ciuF|a|pNcUr@d@es@fIHXaNtCn@UxCjMlApAfFuBpI}E\\ChJdEl@xAtE"
Run Code Online (Sandbox Code Playgroud)
官方语法的相关部分:
string
""
" chars "
chars
char
char chars
char
any-Unicode-character-
except-"-or-\-or-
control-character
\"
\\
\/
\b
\f
\n
\r
\t
\u four-hex-digits
Run Code Online (Sandbox Code Playgroud)