0

json オブジェクトを js ファイルに渡しています。

<script type="text/javascript" src="../js/main.js">
  { lang: 'de' }
</script>

main.js で json オブジェクトを取得しようとしています:

var scriptContent = $('script').filter(function () { return this.src.match(/js\/main\.js/g); }).html(),
  params = $.parseJSON( scriptContent.replace(/&quot;/g, '"') );

しかし、これにより次のエラーが発生します。JSON.parse: expected property name or '}'

ご覧のとおり、私はすでに置き換えようとしまし&quot;"

{ lang: "de" }代わりに試しました{ lang: 'de' }

これを機能させる方法は?

4

4 に答える 4

4

JSON のプロパティは、次のように引用符で囲む必要があります。

{
    "lang": "de"
}

また、JSON ピースが有効かどうかをテストするには、http://jsonlint.com/を使用する必要があります。

于 2012-06-18T09:23:23.663 に答える
2

あなたのスニペットは間違った JSON です。プロパティ キーも引用符で囲む必要があります。

有効な JSON を (テスト目的で) すばやく生成するには、次のように使用しますJSON.stringify( some_object )

JSON.stringify({ lang: "de" });
>>> {"lang":"de"}
于 2012-06-18T09:22:40.660 に答える
2

JsonLintを使用して JSON オブジェクトを検証する

{
    "lang": "de"
}
于 2012-06-18T09:23:58.750 に答える
1

また追加:

scriptContent = scriptContent.replace(/\n/g, '');

ブレーキラインを外す

于 2012-06-18T09:27:05.660 に答える