【问题标题】:How to retrieve JSON data from array of JSON?如何从 JSON 数组中检索 JSON 数据?
【发布时间】:2019-03-16 02:41:15
【问题描述】:

编写 JS 代码循环遍历数组并获取值。在遍历数组时获取 object 的值。

这是要循环的实际 JSON。

[ { sum: '[object Object]', count: '[object Object]' },
  { sum: '[object Object]', count: '[object Object]' },
  { sum: '[object Object]', count: '[object Object]' },
  { sum: '[object Object]', count: '[object Object]' },
  { sum: '[object Object]', count: '[object Object]' },
  { sum: '[object Object]', count: '[object Object]' },
  { sum: '[object Object]', count: '[object Object]' } ]

遍历数组的示例代码:

var data = [ { sum: '[object Object]', count: '[object Object]' },
  { sum: '[object Object]', count: '[object Object]' },
  { sum: '[object Object]', count: '[object Object]' },
  { sum: '[object Object]', count: '[object Object]' },
  { sum: '[object Object]', count: '[object Object]' },
  { sum: '[object Object]', count: '[object Object]' },
  { sum: '[object Object]', count: '[object Object]' } ]



function newX(data) {
    console.log(data.length);
    for (var i = 0; i < data.length; i++) {
        console.log(JSON.stringify(data[i]));
    }
}
newX(data);

输出:

{"sum":"[object Object]","count":"[object Object]"}
{"sum":"[object Object]","count":"[object Object]"}
{"sum":"[object Object]","count":"[object Object]"}
{"sum":"[object Object]","count":"[object Object]"}
{"sum":"[object Object]","count":"[object Object]"}
{"sum":"[object Object]","count":"[object Object]"}
{"sum":"[object Object]","count":"[object Object]"}

但这里需要看实际值。

请告诉我该怎么做。

谢谢

【问题讨论】:

  • 你为什么刺痛?
  • 创建 JSON 时好像出了点问题
  • 您的输入不包含数据 - 从'[object Object]' 字符串中,您无法检索任何更有意义的内容。最好修复输入。
  • 同意@CertainPerformance
  • 这就像你先给一个孩子起名字'名字'然后问为什么你的名字是'名字'。像var name = 'my name';console.log(name) 我需要看到Navin 但是javascript 有问题并且输出是my name。您分配了var sum = '[object Object]',因此您将获得与输入相同的输出。如果需要实际对象分配实际对象var sum = {a: 4, b: 3, s: 7} 现在您将获得对象。

标签: javascript json ecmascript-6 ecmascript-5


【解决方案1】:

编辑: 错误实际上只是在 jsObject 上调用 .log() 而不是它的属性。 console.log(data[i].sum) 是你唯一需要改变的:D

对象上的函数 toString 输出 [object Object](如果它是一个普通对象),因此您可能试图输出一个没有任何属性的对象,修复它并且您的 console.log 将工作:)

var data = [ { sum: 'xx', count: 'yy' },
  { sum: 'xy', count: 'yx' }]



function newX(data) {
    console.log(data.length);
    for (var i = 0; i < data.length; i++) {
        console.log("sum: " + data[i].sum + "\ncount: " + data[i].count); 
    }
}
newX(data);

【讨论】:

    【解决方案2】:

    您不需要使用JSON.stringify。如果要从对象中获取值,则需要使用“。” (点)属性访问器,你可以阅读它here

    var data = [ { sum: '[object Object]', count: '[object Object]' },
      { sum: '[object Object]', count: '[object Object]' },
      { sum: '[object Object]', count: '[object Object]' },
      { sum: '[object Object]', count: '[object Object]' },
      { sum: '[object Object]', count: '[object Object]' },
      { sum: '[object Object]', count: '[object Object]' },
      { sum: '[object Object]', count: '[object Object]' } ]
    
    
    
    function newX(data) {
        console.log(data.length);
        for (var i = 0; i < data.length; i++) {
            console.log('sum = '+data[i].sum + '  count = '+data[i].count);
        }
    }
    newX(data);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-01
      • 2020-09-01
      • 1970-01-01
      相关资源
      最近更新 更多