簡體   English   中英

Javascript-在現有JSON字符串中操作數組結構

[英]Javascript - Manipulate Array structure inside existing JSON string

我有一個簡單的json,要在其中操作數組結構和數據,如下所示,有人可以建議如何使用javascript或xpaths進行操作。

當前的json:-

{
  "pimage": [
    {
      "limage": "http://images.bestbuy.com/BestBuy_US/images/products/7306/7306011_sb.jpg",
      "timage": "http://images.bestbuy.com/BestBuy_US/images/products/7306/7306011_s.gif",
      "mimage": "http://images.bestbuy.com/BestBuy_US/images/products/7306/7306011fp.gif",
      "lfimage": "http://img.bbystatic.com/BestBuy_US/images/products/7306/7306011_sa.jpg"
    }
  ]
}

預期:-在limage鍵下面變得通用,並且當前json的url值保持原樣。

{
  "pimage": [
    {
      "limage": "http://images.bestbuy.com/BestBuy_US/images/products/7306/7306011_sb.jpg"
    },
    {
      "limage": "http://images.bestbuy.com/BestBuy_US/images/products/7306/7306011_s.gif"
    },
    {
      "limage": "http://images.bestbuy.com/BestBuy_US/images/products/7306/7306011_s.gif"
    },
    {
      "limage": "http://images.bestbuy.com/BestBuy_US/images/products/7306/7306011_s.gif"
    }
  ]
}

問題似乎還不清楚,但是這段代碼會將您的對象變成您想要的形式:

var myObj = {
  "pimage": [
    {
      "limage": "http://images.bestbuy.com/BestBuy_US/images/products/7306/7306011_sb.jpg",
      "timage": "http://images.bestbuy.com/BestBuy_US/images/products/7306/7306011_s.gif",
      "mimage": "http://images.bestbuy.com/BestBuy_US/images/products/7306/7306011fp.gif",
      "lfimage": "http://img.bbystatic.com/BestBuy_US/images/products/7306/7306011_sa.jpg"
    }
  ]
}
var myFunc = function(obj) { 
  var keys = Object.keys(obj.pimage[0]);
  var newObj = {"pimage":[]};
  keys.forEach(function(k) {
    var newImg = {};
    newImg['limage'] = obj.pimage[0][k];
    newObj.pimage.push(newImg);
  });
  return newObj;
}

console.log(myFunc(myObj));

有了更多信息,就可以更強大地構造myFunc()函數。

嘗試這個 :

function Parse(ur_obj) {
   var iterate = ur_obj.pimage[0];
   var result = [];
   for(var x in iterate) {
      result.push({x:iterate[x]});
   }
   ur_obj.pimage = result;
   return ur_obj;
}

該解決方案將每個鍵/值對映射到單獨的對象。

 var obj = { "pimage": [{ "limage": "http://images.bestbuy.com/BestBuy_US/images/products/7306/7306011_sb.jpg", "timage": "http://images.bestbuy.com/BestBuy_US/images/products/7306/7306011_s.gif", "mimage": "http://images.bestbuy.com/BestBuy_US/images/products/7306/7306011fp.gif", "lfimage": "http://img.bbystatic.com/BestBuy_US/images/products/7306/7306011_sa.jpg" }] }; obj.pimage = Object.keys(obj.pimage[0]).map(function (k) { var o = {}; o[k] = obj.pimage[0][k]; return o; }); document.write('<pre>' + JSON.stringify(obj, 0, 4) + '</pre>'); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM