2009-08-30 18 views
0

私のjqueryメソッドにいくつかのエラーを戻したいと思います。何が起こっているのですか(私は "json"というタイプの)投稿をしていて、エラーが発生した場合はエラーを表示したいのです。私はクライアント側の検証をしていますが、これらのうちのいくつかはサーバー関連のようなエラーです(つまり、データベースが壊れていたり、何かが起こったり更新ができなかったなど)。インデックスでJsonに電話をかける?

とにかく、いくつかのエラーが発生する可能性があり、それらをすべて一度に戻したいと思います。

私は実際にJsonを使用する方法を知っている唯一の方法ですが、今ではjsonオブジェクトを取得して、すべてのフィールドをそこから取り出したいと考えています。私はすべての自分のメソッドに同じメソッドを使いたいので、それぞれの名前で呼びたくはありません。

インデックスで呼び出すことができれば、入力が少なくて済みます。

これを行うことはできますか?

答えて

2

を、あなたはたとえば、オブジェクトのプロパティを反復する$.eachを使用することができます。

var obj = { one:1, two:2, three:3, four:4, five:5 }; 

jQuery.each(obj, function(key, val) { 
     console.log(key,val); 
}); 

をオブジェクトの場合jQueryのinternallyfor...inステートメントを実行しますが、これは組み込みのプロパティを反復処理しませんが、Object.prototypeが拡張されると問題が発生する可能性があります。拡張されたメンバーもまた反復されるからです。

はのObject.prototypeを拡張するために、しかし、あなたはプロパティが反復されているオブジェクトの上に直接存在することを確認するためにhasOwnProperty機能を使用することができます問題を回避するために、一般的ではありません:

for (var key in obj) { 
    if (obj.hasOwnProperty(key)) { 
     console.log(key,obj[key]); 
    } 
} 
0

JSONは複雑なデータ構造を記述するためのマークアップ言語です。 JSONは、JavaScriptのデータ構造に解析され、オブジェクト、配列、または理論上は無制限の深さの文字列を表すことができます。

JSON構造体が配列、オブジェクト、{}で構成されているかどうかわからなくても、できるかどうかを判断するのは難しいです。

しかし、あなたが見て持つことができる:あなたはjQueryのを使用しているので

var dataObject = { key1 : "error1", 
        key2: "error2" 
       }; 

for (var key in dataObject) { 
    alert(key + " : " + dataObject[key]); 
} 
+1

あなたは非常に注意する必要がありますこのメソッドを使用するとき - http://www.cosmocode.de/en/blog/detman/2006-06/27-json-and-for-each-pitfalls – Sampson

+0

はい、おそらく、プロトタイプに延長されました。私は過去にそれに噛まれてきました。 –

+0

私はjson.netライブラリを使用しています。それを文字列に変換します。 – chobo2

関連する問題