亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

字符串的完美 JSON 格式

字符串的完美 JSON 格式

拉莫斯之舞 2023-07-20 17:00:35
預期輸出:{  "id": "6ae5f723-538f-4df8-ad9a-88943b28484d-ee7586fb",  "lang": "en",  "session_id": "dfMessenger-12848231",  "timestamp": "2020-11-06T06:46:50.794Z",  "result": {    "source": "agent",    "resolved_query": "WELCOME",    "action": "input.welcome",    "score": 1,    "parameters": {},    "contexts": {      "name": "awaits_choice",      "lifespan": 5,      "parameters": {}    },    "metadata": {      "intent_id": "5bb77027-405a-401e-ac3f-497c471359c8",      "intent_name": "Default Welcome Intent",      "webhook_used": "false",      "webhook_for_slot_filling_used": "false",      "is_fallback_intent": "false"    },    "fulfillment": {      "speech": "Hi, I’m sathish",      "messages": {        "payload": {          "fields": {            "key": "richContent",            "value": {              "list_value": {                "values": {                  "list_value": {                    "values": {                      "struct_value": {                        "fields": {                          "key": "type",                          "value": {                            "string_value": "chips"                          }                        }                      }                    }                  }                }              }            }          }        },        "lang": "en",        "type": {          "number_value": 4        }      }    }  },  "status": {    "code": 200,    "error_type": "success"  }}上面是我的字符串,我想使用node.js形成一個有效的json字符串。有人可以幫我形成 json 字符串嗎?提前致謝。我嘗試使用正則表達式替換,但對我不起作用。我已經浪費了兩天時間來形成一個完美的 json 來顯示值。我非常需要有人幫助我解決這個問題。
查看完整描述

1 回答

?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

這是一種使用正則表達式嘗試修復它的解決方案,不確定它是否適用于所有情況,但它適用于這種情況:


const raw = `

id: "6ae5f723-538f-4df8-ad9a-88943b28484d-ee7586fb"

lang: "en"

session_id: "dfMessenger-12848231"

timestamp: "2020-11-06T06:46:50.794Z"

result {

  source: "agent"

  resolved_query: "WELCOME"

  action: "input.welcome"

  score: 1.0

  parameters {

  }

  contexts {

    name: "awaits_choice"

    lifespan: 5

    parameters {

    }

  }

  metadata {

    intent_id: "5bb77027-405a-401e-ac3f-497c471359c8"

    intent_name: "Default Welcome Intent"

    webhook_used: "false"

    webhook_for_slot_filling_used: "false"

    is_fallback_intent: "false"

  }

  fulfillment {

    speech: "Hi, I’m sathish"

    messages {

      platform: "google"

      display_text: "Hi,I'm Sathvish How can I help you?"

      lang: "en"

      type {

        string_value: "simple_response"

      }

    }

    messages {

      platform: "telephony"

      lang: "en"

      type {

        number_value: 14.0

      }

      text: "Hi, I’m Vishnu from The MDC. For all emergencies, Please call 9-1-1 immediately! Or call us on 123456789. So, are you existing customer?"

    }

    messages {

      lang: "en"

      type {

        number_value: 0.0

      }

      speech {

        string_value: "Hi, I'm sathvish How can I help you"

      }

    }

    messages {

      payload {

        fields {

          key: "richContent"

          value {

            list_value {

              values {

                list_value {

                  values {

                    struct_value {

                      fields {

                        key: "image"

                        value {

                          struct_value {

                            fields {

                              key: "src"

                              value {

                                struct_value {

                                  fields {

                                    key: "rawUrl"

                                    value {

                                      string_value: "https://google.com/images/logo.png"

                                    }

                                  }

                                }

                              }

                            }

                          }

                        }

                      }

                      fields {

                        key: "subtitle"

                        value {

                          string_value: "Please call us 123456"

                        }

                      }

                      fields {

                        key: "text"

                        value {

                          string_value: "<b> Stop </b> what you are doing <br> <b> Go </b> outside immediately."

                        }

                      }

                      fields {

                        key: "title"

                        value {

                          string_value: "Emergency"

                        }

                      }

                      fields {

                        key: "type"

                        value {

                          string_value: "accordion"

                        }

                      }

                    }

                  }

                }

              }

            }

          }

        }

      }

      lang: "en"

      type {

        number_value: 4.0

      }

    }

    messages {

      lang: "en"

      type {

        number_value: 0.0

      }

      speech {

        string_value: "How can I help you today?"

      }

    }

    messages {

      payload {

        fields {

          key: "richContent"

          value {

            list_value {

              values {

                list_value {

                  values {

                    struct_value {

                      fields {

                        key: "options"

                        value {

                          list_value {

                            values {

                              struct_value {

                                fields {

                                  key: "text"

                                  value {

                                    string_value: "I am existing customer needs support"

                                  }

                                }

                              }

                            }

                            values {

                              struct_value {

                                fields {

                                  key: "text"

                                  value {

                                    string_value: "Just browsing"

                                  }

                                }

                              }

                            }

                            values {

                              struct_value {

                                fields {

                                  key: "text"

                                  value {

                                    string_value: "Ask me anything "

                                  }

                                }

                              }

                            }

                          }

                        }

                      }

                      fields {

                        key: "type"

                        value {

                          string_value: "chips"

                        }

                      }

                    }

                  }

                }

              }

            }

          }

        }

      }

      lang: "en"

      type {

        number_value: 4.0

      }

    }

  }

}

status {

  code: 200

  error_type: "success"

}

`;


const json = raw

  // add { at the beginning

  .replace(/^/, '{')

  // add } at the end

  .replace(/$/, '}')

  // add missing columns

  .replace(/(?<=\w+)(?=\s*\{)/g, ':')

  // add missing quotes to keys

  .replace(/(?<=\n\s*)(\w+)(?=\s*:)/g, '"$1"')

  // add missing commas

  .replace(/(?<![\{\[])(?=\s*\n+\s*)(?!\s*\n+\s*[\}\]])/g, ',');

  

// parse json to object

const data = JSON.parse(json);


console.log(data);


查看完整回答
反對 回復 2023-07-20
  • 1 回答
  • 0 關注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號