7

Googleマップ用にポリゴンをエンコードした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": "西の牧場",
            "フィールドノート": ""、
            "date_created": "12/31/2012",
            "エーカー": ""
        }
    ]、
    "ポリゴン": [
        {
            "polygon_id": "",
            "field_id": "1",
            "エーカー": "92",
            "latlon": "}ciuF|a|pNcUr@d@es@fIHXaNtCn@UxCjMlApAfFuBpI}E\ChJdEl@xAtE"
        }
    ]
}
4

1 に答える 1

11

問題は、有効なエスケープ シーケンスではない C の前にスラッシュがあることです。

"}ciuF|a|pNcUr@d@es@fIHXantCn@UxCjMlAPAFUBPI}E \ChJdEl@xAte"

JSON.parse('"\\C"');

文字列を解析しようとしているため、構文エラーが発生します\C。プロパティの値にリテラル\が必要な場合は、エスケープする必要があります。

"latlon": "}ciuF|a|pNcUr@d@es@fIHXaNtCn@UxCjMlApAfFuBpI}E\\ChJdEl@xAtE"

公式文法の関連セクション:

string
    ""
    " chars "
chars
    char
    char chars
char
    any-Unicode-character-
        except-"-or-\-or-
        control-character
    \"
    \\
    \/
    \b
    \f
    \n
    \r
    \t
    \u four-hex-digits 
于 2013-01-03T12:51:26.500 に答える