我正在使用一个为谷歌地图编码多边形的 MySQL 数据库。当我尝试将查询作为 json 返回时,jsonlint 提示。我不确定它为什么提示,我确实尝试转义 latlon 中的“}”但仍然遇到相同的错误。
Parse error on line 20: ... "latlon": "}ciuF|a|pNcUr@d@es@ -----------------------^ Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['
我的 json 是:
{ "maps": [ { "group_id": "0", "user_id": "113", "group_name": "", "note": "", "field_id": "", "field_name": "West Pasture", "field_notes": "", "date_created": "12/31/2012", "acres": "" } ], "polygon": [ { "polygon_id": "", "field_id": "1", "acres": "92", "latlon": "}ciuF|a|pNcUr@d@es@fIHXaNtCn@UxCjMlApAfFuBpI}E\ChJdEl@xAtE" } ] }
最佳答案
问题是 C 之前有一个斜杠,它不是有效的转义序列。
"}ciuF|a|pNcUr@d@es@fIHXaNtCn@UxCjMlApAfFuBpI}E\C
hJdEl@xAtE"
JSON.parse('"\\C"');
这会给你一个语法错误,因为它试图解析字符串 \C
。如果您想在属性值中使用文字 \
,则需要将其转义。
"latlon": "}ciuF|a|pNcUr@d@es@fIHXaNtCn@UxCjMlApAfFuBpI}E\\ChJdEl@xAtE"
来自 official grammar 的相关部分:
string
""
" chars "
chars
char
char chars
char
any-Unicode-character-
except-"-or-\-or-
control-character
\"
\\
\/
\b
\f
\n
\r
\t
\u four-hex-digits
关于php - 字符串中的无效 JSON 转义序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14139031/