我需要帮助解析JSON

时间:2016-03-27 00:47:34

标签: javascript json node.js parsing

当我在console.log中获取我得到的数据时,我得到一个看起来像这样的对象(我修剪了一些东西,使它看起来更具可读性......而且......基本上是信息的重复具有不同的价值观):

[ Submission {
    title: 'Untitled',
    content:
     { url: 'http://orig00.deviantart.net/8791/f/2016/079/7/b/untitled_by_wecode-d9vvg2w.png',
       height: '400',
       width: '400',
       medium: 'image' },
    text: null },
  Submission {
    ...
     },
  Submission {
    ...
     } ]

我想从每次提交的内容中获取网址。最后,我应该得到一个包含多个网址的数组。如果有任何帮助,我在nodejs工作。

4 个答案:

答案 0 :(得分:3)

使用.map,它通过将函数应用于旧数组中的每个元素来创建新数组。

var arrayOfSubmissions = ...
var arrayOfURLs = arrayOfSubmissions.map(function(submission){
    return submission.content.url
})

答案 1 :(得分:2)

.map是你的朋友。它遍历数组的每个项目,并将添加函数的每次运行返回到新数组。

var urls = yourArray.map(function (item) {
   return item.content.url;
});

答案 2 :(得分:1)

所以你在这里有一个对象数组 - 我们假设它存储在一个名为myArray的变量中。要获取仅包含URL的新列表,您可以执行以下操作:

var listOfUrls = [];
myArray.forEach(function(obj) {
    listOfUrls.push(obj.content.url);
}

这将为您提供所需的数组。这是一种简单的方法,但您也可以通过其他方式执行此操作,例如map

答案 3 :(得分:0)

var yourObject = [{
    Submission: {
        title: 'Untitled',
        content: {
            url: 'http://orig00.deviantart.net/8791/f/2016/079/7/b/untitled_by_wecode-d9vvg2w.png',
            height: '400',
            width: '400',
            medium: 'image'
        },
        text: null
    }
}];

// your new array of url's
var urls = [];

for (i = 0; i < yourObject.length; i++) {
    urls.push(yourObject[i].Submission.content.url);
}