[英]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.