我有一个简单的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的urls值保持不变。
{
"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"
}
]
}
答案 0 :(得分:1)
问题有点不清楚,但是这段代码会将你的对象变成你想要的形式:
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()函数可以更有力地制作。
答案 1 :(得分:0)
试试这个:
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;
}
答案 2 :(得分:0)
此解决方案将每个键/值对映射到一个单独的对象。
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>');