2017-06-22 88 views
1

我在控制台中发现错误,而我试图从json数据中获取特定值。这是错误:如何从反应中的json数据获取特定值

'Uncaught TypeError: Cannot read property 'processen_id' of undefined'

这里是我的代码:

$.get("/getProces", function (data) { 
     if (data.error) { 
     } else { 
      for (var i = 0; i <= data.message.length; i++) { 
       var obj = data.message[i] 
       console.log(obj.processen_id) 
      } 
     } 
    }) 
} 

这是我所得到的,当我登录(数据):

console.log(data)

+0

您是否尝试过记录'data'和'data.message'来看看里面有什么?很明显,'message [i]'不存在 – atomrc

回答

1

你有一个错误您的代码在for循环中

<= instead of <

$.get("/getProces", function (data) { 
      if (data.error) { 
      } else { 
       for (var i = 0; i < data.message.length; i++) { 
        var obj = data.message[i] 
        console.log(obj.processen_id) 
       } 
      } 
     }) 
    } 
+0

谢谢,它帮助^^ – AndyAsmo97

1

错误消息表示obj未定义。这意味着,data.message[i]得到一个未定义的值。问题在于循环。你会得到一个大于数组的i。更改<=<

for (var i = 0; i < data.message.length; i++) { 
    var obj = data.message[i] 
    console.log(obj.processen_id) 
} 
+0

谢谢,它帮助^^ – AndyAsmo97

0

指数超出范围:for (var i = 0; i <= data.message.length; i++) {应该for (var i = 0; i < data.message.length; i++) {代替。

您还可以优化你的代码是这样的:

$ 
    .get("/getProces") 
    .then((res) => res.error ? Promise.reject(res) : Promise.resolve(res)) 
    .then((data) => { 
    for (var i = 0; i < data.message.length; i++) { 
     var obj = data.message[i] 
     console.log(obj.processen_id) 
    } 
    }) 
相关问题