如何使用Javascript编辑JSON?
我在如何使用Javascript编辑JSON?,javascript,arrays,json,object,Javascript,Arrays,Json,Object,我在JSONArray中有一个JSONObject(如下面的JSON)。现在我必须添加productID值作为对象的键,比如必需的JSON。我正试图通过javascript实现这一点。但是我不能得到想要的输出 我试图在谷歌上找到任何解决方案。但这不起作用。 有谁能指导我怎么做或者给我看一些参考资料吗 原始JSON [ { "productID": "C05M01P001", "productName": "Aashirvaad Atta - Whole Wheat
JSONArray
中有一个JSONObject
(如下面的JSON)。现在我必须添加productID
值作为对象的键
,比如必需的JSON
。我正试图通过javascript实现这一点。但是我不能得到想要的输出
我试图在谷歌上找到任何解决方案。但这不起作用。
有谁能指导我怎么做或者给我看一些参考资料吗
原始JSON
[
{
"productID": "C05M01P001",
"productName": "Aashirvaad Atta - Whole Wheat (முழு கோதுமை)",
"productUnit": "1 kg",
"productPrice": "Rs.50.00",
"productSellingPrice": "",
"productSID": "",
"productImage": "http://www.thechert.com/image/cache/Product_Images_2016/asvd-attaplain-atta-large-500x500.jpg",
"productDescription": "Ashirvaad Atta - Whole Wheat 1 kg..",
"productCID": "C05",
"productMID": "M01"
},
..... it goes on
]
{
"C05M01P001" : {
"productID": "C05M01P001",
"productName": "Aashirvaad Atta - Whole ",
"productUnit": "1 kg",
"productPrice": "Rs.50.00",
"productSellingPrice": "",
"productSID": "",
"productImage": "http://www.thechenart.com/image/cache/Product_Images_2016/asvd-attaplain-atta-large-500x500.jpg",
"productDescription": "Ashirvaad Atta - Whole Wheat 1 kg",
"productCID": "C05",
"productMID": "M01"
},
..... it goes on
}
必需的JSON
[
{
"productID": "C05M01P001",
"productName": "Aashirvaad Atta - Whole Wheat (முழு கோதுமை)",
"productUnit": "1 kg",
"productPrice": "Rs.50.00",
"productSellingPrice": "",
"productSID": "",
"productImage": "http://www.thechert.com/image/cache/Product_Images_2016/asvd-attaplain-atta-large-500x500.jpg",
"productDescription": "Ashirvaad Atta - Whole Wheat 1 kg..",
"productCID": "C05",
"productMID": "M01"
},
..... it goes on
]
{
"C05M01P001" : {
"productID": "C05M01P001",
"productName": "Aashirvaad Atta - Whole ",
"productUnit": "1 kg",
"productPrice": "Rs.50.00",
"productSellingPrice": "",
"productSID": "",
"productImage": "http://www.thechenart.com/image/cache/Product_Images_2016/asvd-attaplain-atta-large-500x500.jpg",
"productDescription": "Ashirvaad Atta - Whole Wheat 1 kg",
"productCID": "C05",
"productMID": "M01"
},
..... it goes on
}
您可以使用
reduce
方法,该方法接受回调
方法,并对累加器和数组中的每个元素(从左到右)应用一个函数以将其减少为单个值
var-json=[
{
“产品ID”:“C05M01P001”,
“产品名称”:“Aashirvaad Atta-全麦”(முழு கோதுமை)",
“产品单位”:“1千克”,
“产品价格”:“50.00卢比”,
“产品销售价格”:“,
“productSID”:“,
“productImage”:http://www.thechennaikart.com/image/cache/Product_Images_2016/asvd-attaplain-atta-large-500x500.jpg",
“产品说明”:“Ashirvaad Atta-全麦1公斤…”,
“productCID”:“C05”,
“productMID”:“M01”
},
{
“产品ID”:“C05M01P002”,
“产品名称”:“Aashirvaad Atta-全麦”(முழு கோதுமை)",
“产品单位”:“1千克”,
“产品价格”:“50.00卢比”,
“产品销售价格”:“,
“productSID”:“,
“productImage”:http://www.thechennaikart.com/image/cache/Product_Images_2016/asvd-attaplain-atta-large-500x500.jpg",
“产品说明”:“Ashirvaad Atta-全麦1公斤…”,
“productCID”:“C05”,
“productMID”:“M01”
}
]
log(json.reduce)(函数(对象,项){
对象[item.productID]=项;
返回对象;
},{}));
您可以通过一个循环来实现
var inputJson=[{
“产品ID”:“C05M01P001”,
“产品名称”:“Aashirvaad Atta-全麦”(முழு கோதுமை)",
“产品单位”:“1千克”,
“产品价格”:“50.00卢比”,
“产品销售价格”:“,
“productSID”:“,
“productImage”:http://www.thechennaikart.com/image/cache/Product_Images_2016/asvd-attaplain-atta-large-500x500.jpg",
“产品说明”:“Ashirvaad Atta-全麦1公斤…”,
“productCID”:“C05”,
“productMID”:“M01”
}, {
“产品ID”:“C05M01P002”,
“产品名称”:“XYZ-全麦”(முழு கோதுமை)",
“产品单位”:“1.3千克”,
“产品价格”:“40.00卢比”,
“产品销售价格”:“,
“productSID”:“,
“productImage”:http://www.thechennaikart.com/image/cache/Product_Images_2016/asvd-attaplain-atta-large-500x500.jpg",
“产品说明”:“XYZ-全麦1.3公斤…”,
“productCID”:“C05”,
“productMID”:“M01”
}];
var outputJson={};
inputJson.forEach((singleProduct)=>{
outputJson[singleProduct.productID]=singleProduct;
});
console.log(outputJson);
您只需在数组中循环,使用项
属性键控的属性创建一个对象。您可以使用一个简单的forEach
:
var updated = {};
original.forEach(function(entry) {
updated[entry.productID] = entry;
});
var-original=[
{
“产品ID”:“C05M01P001”,
“产品名称”:“Aashirvaad Atta-全麦”(முழு கோதுமை)",
“产品单位”:“1千克”,
“产品价格”:“50.00卢比”,
“产品销售价格”:“,
“productSID”:“,
“productImage”:http://www.thechennaikart.com/image/cache/Product_Images_2016/asvd-attaplain-atta-large-500x500.jpg",
“产品说明”:“Ashirvaad Atta-全麦1公斤…”,
“productCID”:“C05”,
“productMID”:“M01”
}
];
var更新={};
原始.forEach(函数(条目){
更新的[entry.productID]=条目;
});
console.log(已更新);
通常.reduce()
是此作业的工具,但由于已经给出了它,对于各种类型,您也可以尝试如下递归方法
var os=[{x:1,y:test},{x:2,y:more},{x:3,y:test}],
文件夹=(a,p)=>a.length&&Object.assign({[a[0][p]]:a[0]},文件夹(a.slice(1,p));
console.log(文件夹(os,“x”);
试试这个:
var jsonObj=[
{
“产品ID”:“C05M01P001”,
“产品名称”:“Aashirvaad Atta-全麦”(முழு கோதுமை)",
“产品单位”:“1千克”,
“产品价格”:“50.00卢比”,
“产品销售价格”:“,
“productSID”:“,
“productImage”:http://www.thechennaikart.com/image/cache/Product_Images_2016/asvd-attaplain-atta-large-500x500.jpg",
“产品说明”:“Ashirvaad Atta-全麦1公斤…”,
“productCID”:“C05”,
“productMID”:“M01”
},
{
“产品ID”:“C05M01P002”,
“产品名称”:“Aashirvaad Atta-全麦”(முழு கோதுமை)",
“产品单位”:“1千克”,
“产品价格”:“50.00卢比”,
“产品销售价格”:“,
“productSID”:“,
“productImage”:http://www.thechennaikart.com/image/cache/Product_Images_2016/asvd-attaplain-atta-large-500x500.jpg",
“产品说明”:“Ashirvaad Atta-全麦1公斤…”,
“productCID”:“C05”,
“productMID”:“M01”
}
];
var obj={};
for(jsonObj中的变量i){
obj[jsonObj[i].productID]=jsonObj[i];
}
console.log(obj);
结果不是有效的javascript。“必需的JSON”无效。这不是JSON,而是一个对象数组您必需的JSON
可以是一个对象,而不是数组。您的结果不能是您建议的,但可以是一个对象数组,例如[{“C05M01P001:{…},{“C05M01P002”:{…}]
或(可能更有意义)单个对象{“C05M01P001:{…},“C05M01P002:{…}}
-您需要哪一个?很抱歉造成混淆。正如Err Hunter所建议的,它是一个JSON对象。这并不是所要求的。但是它更可取