当前位置: 首页 > 知识库问答 >
问题:

如何去除花括号并保留JSON的键值

经福
2023-03-14

因此,我想删除所有内部卷曲括号,同时重命名值,如

{“意向”:“P&P_购买”,“Value1”:日期:12月30日,产品:印楝尿素OMIFCO(45公斤),数量:18公吨,INV_NO:NRKT07003160;“Value2”:日期:12月19日,产品:印楝尿素OMIFCO(45公斤),数量:18公吨,INV_NO:NRKT07003160;“Value3”:日期:1月19日,产品:印楝尿素OMIFCO(45公斤),数量:18公吨,INV_NO:NRKT07003160;“Value4”:日期:1月19日,产品:印楝尿素OMIFCO(45公斤),数量:18公吨

现在,我正在尝试处理这段代码,但我无法实现它

    ```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?');
             });
          }) 

请帮帮我。谢谢

共有1个答案

薛枫
2023-03-14

尝试一个递归函数!

伪代码:

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];
   }
  }
}

警告:小心使用嵌套的重复密钥名称ex:

 类似资料:
  • 我试图创建一个数据数组与FLOT图表一起使用。我使用这个CodeIgniter代码来生成数组: 这段代码的问题是无法绘制生成的JSON对象,因为“值”实际上是字符串。以下是有问题的JSON输出: 这个JSON有三个问题: 需要方括号而不是花括号;和 以下是JSON输出的格式: 清理这个JSON对象的最佳方法是什么?我应该在服务器端使用CodeIgniter代码吗?或者我应该在javascript中

  • 问题内容: 我有一个像下面这样的json字符串 我想从字符串中删除/删除第一个和最后一个方括号。所以我将如何使用JavaScript从上述字符串中删除第一个和最后一个方括号。 请帮我 问题答案: 请参阅此Codepen示例

  • 我得到了这样的回应 因此,在使用时,由于前面有文本“stripe\product json:”,所以我得到了一个错误 请帮忙

  • 问题内容: 我正在使用Json-Simple使用JSon-Simple lib编写配置文件,但是在将json字符串转换为map时遇到问题。 调试我发现parse方法返回的对象是Map!但是当我尝试直接投射到LinkedMap时,我得到了ClassCastException: 问题答案: 除非您知道基础对象实际上是LinkedHashMap(或者是扩展LinkedHashMap的类的实例),否则不能

  • 问题内容: 有没有一种快速的方法可以使Eclipse将花括号放在代码块的下一行上(本身)? 问题答案: 对于预先编写的代码块,请先按照Don的建议进行设置,然后选择该代码段,然后右键单击SourceCode->Format,然后按照首选项中的设置进行格式化。