16

サーバーはオブジェクトの配列を JSON で返します。それはそう見える:

{"d":"[
  {\"Id\":1,\"IsGood\":true,\"name1\":\"name1dsres\",\"Name2\":\"name2fdsfd\",\"name3\":  \"name3fdsgfd\",\"wasBorn\":\"\\/Date(284011000000)\\/\"},
  {\"Id\":2,\"IsGood\":false,\"name1\":\"fdsfds\",\"name2\":\"gfd3im543\",\"name3\":\"3543gfdgfd\",\"WasBorned\":\"\\/Date(281486800000)\\/\"}
]"}

JSON.parse 関数を使用して解析する必要があります。私はこれをこのようにやっています:

   function myFunction(dataFromServer){
      var parsedJSON = JSON.parse(dataFromServer.d);
         for (var item in parsedJSON.d) {
          // how do I get the fields of current item?
      }

このコードは機能していません。未定義を返します

for (var item in parsedJSON) {
      alert(item.Id);
}
4

4 に答える 4

18

これは完全に機能します

    function myFunction(dataFromServer){
       var parsedJSON = JSON.parse(dataFromServer.d);
       for (var i=0;i<parsedJSON.length;i++) {
            alert(parsedJSON[i].Id);
         }
 }

しかし、これはそうではありません

    function myFunction(dataFromServer){
           var parsedJSON = JSON.parse(dataFromServer.d);
           for (var item in parsedJSON) {
               alert(item.Id);
         }
 }
于 2012-07-13T10:59:43.637 に答える
2

他のオブジェクトと同じように、それらにアクセスできます。

var id = item.Id;
if (item.IsGood) { ... }

それらを列挙して何らかの形で使用したい場合は、この SO questionをご覧ください。

于 2012-07-13T10:38:10.283 に答える
0

通常の JavaScript オブジェクトと同じようにアクセスできますitem.iditem['id']

于 2012-07-13T10:40:47.697 に答える