如何将变量映射到对象

时间:2017-06-26 15:13:43

标签: javascript jquery html json

我是JSON和jQuery / JavaScript的新手。

我如何拉入一个对象,以便我可以在jQuery中使用它,我尝试了2次尝试

var placements = document.querySelector(placements)
var message = document.querySelector(placements.message)


$.ajax({
  type: 'GET',
  url: 'https://raw.githubusercontent.com/kieranbs96/developer-exercise/master/data/recommendations.json',
  async: false,
  dataType: 'json',
  success: function (data) {
    $("header").append(placements.message);
  }
});

以下是我试图引入的JSON:

{  
   "placements":[  
      {  
         "message":"If you like this, you might be into these",
         "items":[  
            {  
               "id":"029148",
               "name":"Woodblock Play Suit",
               "price":"46.00"
            },
            {  
               "id":"0294526806",
               "name":"Smock Dress",
               "price":"39.00"
            },
            {  
               "id":"0297180006",
               "name":"Cami",
               "price":"9.00"
            },
            {  
               "id":"0298473606",
               "name":"Asymmetric Wrap Cami Dress",
               "price":"46.00"
            },
            {  
               "id":"0297155306",
               "name":"Casual Stripe Tee",
               "price":"16.00"
            }
         ]
      }
   ]
}

标记为重复 - 另一个问题没有解决我的问题 - 它已经通过这个问题的答案得到解决。

2 个答案:

答案 0 :(得分:1)

您还没有包含错误或预期输出,但这里有两个潜在错误。

  1. 您没有使用从AJAX请求返回的data对象。

  2. 与JSON对象上的placements键关联的值是对象的数组。因此,要访问message密钥,您需要遍历该阵列。

  3. 这可能是您的代码应该是这样的:

     $("header").append(data.placements[0].message);
    

答案 1 :(得分:0)

首先,您在追加功能中缺少数据对象 其次,考虑到data.placementsplacements这一事实,您错过了array的关键符号。 您可以使用data.placements[0].message来获取您的首选数据,或者,如果placements将来会使用更多对象进行扩展,map可以通过您的对象进行扩展:

    data.placements.map(function(obj, index){
        if(index == 0){
            $("header").append(obj.message);
        }
    })

如果你的数组的长度总是为1,则不需要