簡體   English   中英

將鍵/值對轉換為 json

[英]Convert Key/Value pairs to json

我有一個看起來像這樣的字符串:

TOKEN="XXX" JOBID="2435" TYPE="ERROR" MSG="<SOME_THING> [name="address"] couldn't be found"

我需要做的是將 key=value 對轉換為 nodejs 中的對象或 json。

有什么建議么?

可以通過字符串分隔符拆分,並從“外部”部分提取密鑰:

 const input='TOKEN="XXX" JOBID="2435" TYPE="ERROR"'; const result={}; input.split('"').forEach(function(value, i, arr){ if(i % 2 === 0) return; const key=arr[i-1].trim().replace("=",""); result[key]=value; }); console.log(result);

然而,一個合適的解析器寧願看起來像這樣:

 const input='TOKEN="XXX" JOBID="2435" TYPE="ERROR"'; const result = {}; let position = 0; while(position < input.length) { let startKey = position; while(input[startKey] === " ") startKey++; const endKey = input.indexOf(`="`, startKey + 1); if(endKey === -1) throw new Error("Key without value"); const endValue = input.indexOf(`"`, endKey + 2); if(endValue === -1) throw new Error("Unterminated Value"); const key = input.slice(startKey, endKey); const value = input.slice(endKey + 2, endValue); result[key] = value; console.log("key", key, "value", value); position = endValue + 1; } console.log(result);

暫無
暫無

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

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