JSON.parse用于对象数组

7 javascript json

Server以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)\\/\"}
]"}
Run Code Online (Sandbox Code Playgroud)

我需要使用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?
      }
Run Code Online (Sandbox Code Playgroud)

此代码不起作用,它返回undefined

for (var item in parsedJSON) {
      alert(item.Id);
}
Run Code Online (Sandbox Code Playgroud)

小智 12

这非常有效

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

但这不是

    function myFunction(dataFromServer){
           var parsedJSON = JSON.parse(dataFromServer.d);
           for (var item in parsedJSON) {
               alert(item.Id);
         }
 }
Run Code Online (Sandbox Code Playgroud)

  • 它不应该.`for - in`构造用于迭代对象属性,而不是数组元素(就像你在PHP或Python中那样).JS需要增量for循环来迭代数组. (3认同)
  • `for(数组中的索引){var value = array [index]; }` (2认同)