2009-04-26 11 views
8

欠落]要素リスト解析JSON後

$.post(
"/url/to/method", 
{ }, 
function(data){ 
    var obj2 = eval("("+$(data).children()+")"); 
    // OR var obj = $.evalJSON($($(data).children())); // Jquery-json 
    $body = $("#AAA"); 
    $body.html(obj.fied); 
}, 
"xml" 
); 

一方にターン「欠落]要素リスト後に」放火犯に(5行目で、または6)エラー。メソッドからのJSON出力がjsonlint.com/で検証されました

おそらく私はAJAX/JSONの初心者です。おかげ

+4

JSONデータの解析に 'eval'を使用しないでください。代わりに 'JSON.parse'を使用してください。 – Gumbo

+1

@Gumbo、合意されたJSON.parseはhttp://www.json.org/js.htmlにあります。 – bendewey

+0

JSONを投稿すると、簡単に手助けできます。 –

答えて

5

あなたは、.NET 2.0でこれを書いている

eval(" (" + data + ") "); 
+0

スペースを使ってevalを使用することは、まだやりません(同じエラー)。 JSON.parseの使用私は奇妙なエラーになります:text.replaceは関数ではありません、json2.js:445 –

+0

JSONを投稿してください。機密情報が含まれている場合は、ダミーデータを使用してエラーを再作成してください。明らかにそれに間違いがあります。 –

0

... JSON.parse方法を使用するか、またはそれはevalに渡す前に次のあなたの括弧にスペースを含めるようにしてください?その場合は、JSONオブジェクトを渡すのではなく、クエリ文字列にデータを構築してください。

例: VAR1 =アルマ& var2の=ユーザー "VAR1" と "var2には、" あなたのWebMethod属性が期待するパラメータの名前です

。データを:{querystring} JSONを2.0のWebサービスに渡すときに問題が発生しました。

グッドラック

14

おそらく何が起こっているあなたの$ .postコールは、すでにJSONオブジェクトを返すことです。 jQueryはJSONを自動的に検出して解析します。このようなJSONオブジェクトでevalを呼び出すと、このエラーが表示されます。卑劣なこと!データオブジェクトはそのまま使用してください。

+0

私はこの問題を抱えていましたが、JSONのメンバーにアクセスできるオブジェクトを使用しています。ありがとう。 – Felix

+0

私はこの回答で私の問題を解決することもできました。ありがとう。 – mVChr

0

jQueryは結果がJSONであるかどうかを調べて自動的に解析しようとしますが、この場合のデータは既にJavaScriptオブジェクトであり、解析を待っているJSON文字列ではありません。したがって、eval()とJSON.parseを使用する代わりに、このオブジェクトをそのまま使用することができます。

関連する問題