const test ="[{contactId=2525, additionDetail=samle}]";
我需要將此字串轉換為 JSON 物件。它將像這個字串一樣動態加載。我需要將特定字串轉換為 JSON 物件。
JSON.parse(test) 命令對此不起作用。我在這里附上了錯誤。

uj5u.com熱心網友回復:
對于那個特定的字串,你必須自己決議它。
const test = '[{contactId=2525, additionDetail=samle}]';
const obj = {};
test.split(/[{}]/)[1].split(/, /).forEach((elm) => {
const entry = elm.split('=');
obj[entry[0]] = entry[1];
});
我正在做的是拆分大括號上的字串并選擇第二個元素(使用正則運算式),然后將其拆分為逗號和空格(再次正則運算式),然后回圈結果并分配給一個物件。然后您可以 JSON.stringify(obj) 為結果。
:編輯:
對于您要求的第二個字串,還有另一個可能更精致的答案。您需要首先將 = 替換為 :(我再次使用了正則運算式),然后使用正則運算式匹配單詞和句子并使用函式添加引號。
const test = '[{contactId=2525, additionDetail=samle}]';
const test2 = "[{contactId=2525, additionDetail=rrr additional Detail, medicationType={medicationTypeId=3333, medicationType=Tablet}, endDate=2022-12-30}]";
const replaced = test.replace(/=/g,':')
const replaced2 = test2.replace(/=/g, ':');
const replacer = function(match){
return '"' match '"';
}
const replacedQuote = replaced.replace(/(?!\s)[-?\w ?] /g,replacer);
const replaced2Quote = replaced2.replace(/(?!\s)[-?\w ?] /g,replacer);
const obj = JSON.parse(replacedQuote);
const obj2 = JSON.parse(replaced2Quote);
uj5u.com熱心網友回復:
您應該注意到 Json 表示 javascript 物件表示法,因此您需要創建一個 JavaScript 物件才能開始:
const test ="[{contactId=2525, additionDetail=samle}]";
let obj = Object.create(null)
您現在可以將變數定義為物件屬性之一:
obj.test = test
現在我們有一個 JavaScript 物件,我們可以將它轉換為 json:
let convertedToJson = JSON.stringify(test);
uj5u.com熱心網友回復:
[{contactId=2525,additionDetail=samle}]
這不是一個有效的 JSON 字串,它不能被 JSON.parse() 決議
正確的 JSON 字串是:
const test ='[{"contactId":2525, "additionDetail":"samle"}]';
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/396852.html
