【问题标题】:I need help parsing JSON我需要帮助解析 JSON
【发布时间】:2016-07-14 13:10:41
【问题描述】:

当我 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 {
    ...
     } ]

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

【问题讨论】:

    标签: javascript json node.js parsing


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      .map 是你的朋友。它遍历数组的每一项,并将函数每次运行返回的任何内容添加到新数组中。

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

        • .map 更简洁
        • 我会说这是一个观点问题。对于 JavaScript 新手来说,forEach 循环可能比 map 更易读、更容易理解。当然,没有理由不使用map
        【解决方案4】:
        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);
        }
        

        【讨论】:

          猜你喜欢
          • 2018-12-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多