簡體   English   中英

如何在服務器端將字符串轉換為 json?

[英]How to convert string to json on server side?

我正在發送一個 post 請求,其中包含像這樣的字符串化形式的數據:

slackApi.post(
      "/send-message-to-selected",
      JSON.stringify({
        msg,          <---  In string form already
        msgLayout,
        users,
        token,
      })
    );

作為字符串形式,服務器端的數據以這種形式給我msg對象:

'{\n' +
    '\t\t\t"type": "section",\n' +
    '\t\t\t"text": {\n' +
    '\t\t\t\t"type": "mrkdwn",\n' +
    `\t\t\t\t"text": "Hello, Assistant to the Regional Manager Dwight! *Michael Scott* wants to know where you'd like to take the Paper Company investors to dinner tonight.\\n\\n *Please select a restaurant:*"\n` +
    '\t\t\t}\n' +
    '\t\t},\n'

如何將其轉換為 JSON Object ?

只需選擇JSON.parse() - 它應該足夠智能以忽略空白字符

編輯:正如 express123 提到的,您必須從字符串中刪除最后 2 個字符:

msg = msg.slice(0, msg.length-2)

如果您使用JSON.parse解析 JSON,那么它會將字符串化的 JSON 轉換為一個對象:

JSON.parse(msg)

最后一個字符是逗號和換行符,因此對字符串進行切片

msg.slice(0, msg.length-2)

 var input = '{\\n' + '\\t\\t\\t"type": "section",\\n' + '\\t\\t\\t"text": {\\n' + '\\t\\t\\t\\t"type": "mrkdwn",\\n' + `\\t\\t\\t\\t"text": "Hello, Assistant to the Regional Manager Dwight! *Michael Scott* wants to know where you'd like to take the Paper Company investors to dinner tonight.\\\\n\\\\n *Please select a restaurant:*"\\n` + '\\t\\t\\t}\\n' + '\\t\\t},\\n' document.getElementById("input").innerHTML = input var output = JSON.parse(input.slice(0, input.length - 2)) document.getElementById("answer").innerHTML = output
 <div id="input"></div> </br> </br> <div id="answer"></div>

slice with (len - 2) 刪除換行符和額外的逗號“,/n”

轉換前可以看到字符串,轉換后顯示對象對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM