[英]How to Remove curly brackets and remane the key value of JSON
I am getting output like this我得到这样的输出
{"intent":"P&P_Purchase","value1":{"date1":"30-Dec-19","prd_desc":"NEEM UREA OMIFCO (45 KG)","qty":"18MT","inv_no":"NRKT07003160"},"value2":{"date1":"25-Dec-19","prd_desc":"NEEM UREA IMP (45 KG)","qty":"18MT","inv_no":"NRKT07003107"},"value3":{"date1":"19-Dec-19","prd_desc":"DAP IMP","qty":"20MT","inv_no":"NRKT07003058"},"value4":{"date1":"16-Dec-19","prd_desc":"NEEM UREA OMIFCO (45 KG)","qty":"18MT","inv_no":"NRKT07003043"},"value5":{"date1":"30-Nov-19","prd_desc":"NEEM UREA IMP (45 KG)","qty":"54MT","inv_no":"NRKT07002921"},"value6":null,"value7":null,"value8":null,"value9":null,"value10":null} {"intent":"P&P_Purchase","value1":{"date1":"30-Dec-19","prd_desc":"NEEM UREA OMIFCO (45 KG)","qty":"18MT","inv_no ":"NRKT07003160"},"value2":{"date1":"25-Dec-19","prd_desc":"NEEM UREA IMP (45 KG)","qty":"18MT","inv_no": "NRKT07003107"},"value3":{"date1":"19-Dec-19","prd_desc":"DAP IMP","qty":"20MT","inv_no":"NRKT07003058"},"value4 ":{"date1":"16-Dec-19","prd_desc":"NEEM UREA OMIFCO (45 KG)","qty":"18MT","inv_no":"NRKT07003043"},"value5": {"date1":"30-Nov-19","prd_desc":"NEEM UREA IMP (45 KG)","qty":"54MT","inv_no":"NRKT07002921"},"value6":null, "value7":null,"value8":null,"value9":null,"value10":null}
so, i want to remove all inner curl brackets as well rename the value like所以,我想删除所有内部大括号以及重命名值
{"intent":"P&P_Purchase","value1":Date:30-Dec-19,Product:NEEM UREA OMIFCO (45 KG),Quantity:18MT,inv_no:NRKT07003160,"value2":Date:31-Dec-19,Product:NEEM UREA OMIFCO (45 KG),Quantity:18MT,inv_no:NRKT07003160,"value3":Date:01-Jan-19,Product:NEEM UREA OMIFCO (45 KG),Quantity:18MT,inv_no:NRKT07003160,"value4":Date:02-Jan-19,Product:NEEM UREA OMIFCO (45 KG),Quantity:18MT,inv_no:NRKT07003160,"value5":Date:03-Jan-19,Product:NEEM UREA OMIFCO (45 KG),Quantity:18MT,inv_no:NRKT07003160,"value6":null,"value7":null,"value8":null,"value9":null,"value10":null} {"intent":"P&P_Purchase","value1":Date:30-Dec-19,Product:NEEM UREA OMIFCO (45 KG),Quantity:18MT,inv_no:NRKT07003160,"value2":Date:31-Dec-19 ,产品:NEEM UREA OMIFCO (45 KG),数量:18MT,inv_no:NRKT07003160,"value3":Date:01-Jan-19,Product:NEEM UREA OMIFCO (45 KG),Quantity:18MT,inv_no:NRKT0703" value4":日期:02-Jan-19,Product:NEEM UREA OMIFCO (45 KG),Quantity:18MT,inv_no:NRKT07003160,"value5":Date:03-Jan-19,Product:NEEM UREA OMIFCO (45 KG) ,数量:18MT,inv_no:NRKT07003160,"value6":null,"value7":null,"value8":null,"value9":null,"value10":null}
Now, I am trying to do with this code but i am not able to achieve it现在,我正在尝试使用此代码,但无法实现
```var data = {"token" : token,"serviceID" : serviceID,"P_USERID" : P_USERID };
var sdata = JSON.stringify(data);
const options = {
method: 'POST',
uri: 'http://chatbotWebservice/resources/webservice/service' ,
body: JSON.parse(sdata) ,
json: true
}
return request(options)
.then( body => {
var unit = body
unit.intent = "P&P_Purchase"
unit.value1 = unit.level3purpay[0]
console.log(unit.level3purpay[0].prd_desc)
unit.value2 = unit.level3purpay[1]
unit.value3 = unit.level3purpay[2]
unit.value4 = unit.level3purpay[3]
unit.value5 = unit.level3purpay[4]
unit.value6 = null
unit.value7 = null
unit.value8 = null
unit.value9 = null
unit.value10 = null
delete unit.level3purpay
const unit_value = {
date1: "Date",
prd_desc: "Product",
qty: "Quantity",
inv_no: "inv_no"
};
const unit2 = Object.entries(unit)
.map(([key, value]) => `${labels[key]}:${value}`)
.join();
var unit3 = JSON.stringify(unit2)
console.log(unit3)
conv.ask(unit2);
})
.catch( err => {
console.error( err );
conv.ask('Something went wrong. What should I do now?');
});
})
Please help me out.请帮帮我。 Thanks
谢谢
try a recursive function!尝试递归函数!
Pseudocode:伪代码:
cleanjson = {};
function clearBrakets(json,parent_name){
keys = getKeys(json);
for(i = 0; i < keys.lenght; i ++){
if(json[keys[i]].type == array){
clearBrakets(json[keys[i]],keys[i]);
}else{
cleanjson[parent_name + keys[i]] = json[i];
}
}
}
WARNING: be careful with nested duplicated key names ex:警告:小心嵌套重复的键名,例如:
{obj1:{value="aa",name="cc"},obj2:{value="bb"}}
will output会输出
{value="bb",name="cc"}
instead of {value="aa",name="cc",value="bb"}
{value="bb",name="cc"}
而不是{value="aa",name="cc",value="bb"}
try adding the parent name:尝试添加父名称:
{obj1_value="aa",obj1_name="cc",obj2_value="bb"}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.