0

エラーが発生し続けます: Uncaught SyntaxError: Unexpected token '

これは完全な JSON 応答です。

'app': {type: 'app', desc: 'Application'}, 'iso': {type: 'iso', desc: 'ISO Disk Image'}, 'fla': {type: 'fla', desc: 'Adobe Flash Document'}, 'dll': {type: 'dll', desc: 'Dynamic Link Library'}

私も完全な応答を括弧で囲んでみましたが、それでも問題は解決しません。私はJSONを間違っていますか? 括弧を削除しようとしましたが、文字について不平を言います。この応答を JavaScript オブジェクトに変換しようとしていますが、それをしたくありません!

4

4 に答える 4

6

そこにいくつかの問題があります:

  1. JSONでは、キーは二重引用符で囲む必要があります (文字列も同様です)。一重引用符は使用できません。引用符必要です。

  2. JSON では、最上位は常にオブジェクトまたは配列でなければなりません。オブジェクトにある必要がある一連のプロパティ初期化子を引用しました。

その有効なバージョンは次のとおりです。

{
  "app": {"type": "app", "desc": "Application"},
  "iso": {"type": "iso", "desc": "ISO Disk Image"},
  "fla": {"type": "fla", "desc": "Adobe Flash Document"},
  "dll": {"type": "dll", "desc": "Dynamic Link Library"}
}

変更点:

  • すべての一重引用符を二重引用符に変更します。
  • 二重引用符を持たないキー ( type, ) を二重引用符で囲みます。desc
  • {}最上位がオブジェクトになるようにすべてを入れます。
于 2013-08-09T09:33:59.000 に答える
1

これが有効な JSON 文字列です

{
    "app": {
        "type": "app",
        "desc": "Application"
    },
    "iso": {
        "type": "iso",
        "desc": "ISODiskImage"
    },
    "fla": {
        "type": "fla",
        "desc": "AdobeFlashDocument"
    },
    "dll": {
        "type": "dll",
        "desc": "DynamicLinkLibrary"
    }
}

http://jsonlint.com/でいつでも有効性を確認できます。

有効な JSON 形式を探したい場合は、こちらをご覧ください

于 2013-08-09T09:34:51.547 に答える
0

どこにでも二重引用符を追加して配置{}すると、機能します。

var objet = '{"app": {"type": "app", "desc": "Application"},"iso": {"type": "iso", "desc": "ISO Disk Image"},"fla": {"type":"fla", "desc": "Adobe Flash Document"},"dll": {"type": "dll", "desc": "Dynamic Link Library"}}';
console.log($.parseJSON(objet));

ここで私のテストを取得できます

于 2013-08-09T09:41:04.413 に答える
0

完全な JSON 標準については、json.orgを参照してください。

ここには 2 つの問題があることがわかります。

JSON データは、オブジェクト ( {}) または配列 ( []) として表されます。したがって、データに適切なもの (データの外観からオブジェクトの可能性が高い) に応じて、すべてをいずれかでラップする必要があります。

また、文字列には二重引用符を使用する必要があります。json.orgから:

文字は、バックスラッシュ エスケープを使用して、二重引用符で囲まれた 0 個以上の Unicode 文字のシーケンスです。

最後に、 JSON Lintを使用して、この種の問題を迅速かつ簡単に検出できます。

有効な JSON のデータは次のとおりです。

{
    "app": {
        "type": "app",
        "desc": "Application"
    },
    "iso": {
        "type": "iso",
        "desc": "ISODiskImage"
    },
    "fla": {
        "type": "fla",
        "desc": "AdobeFlashDocument"
    },
    "dll": {
        "type": "dll",
        "desc": "DynamicLinkLibrary"
    }
}
于 2013-08-09T09:41:14.580 に答える