我正在使用为谷歌地图编码多边形的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" } ] }
答案 0 :(得分:4)
问题是在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