Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Javascript编辑JSON?_Javascript_Arrays_Json_Object - Fatal编程技术网

如何使用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对象。这并不是所要求的。但是它更可取