說如果我有一個物件:
{ "name": "abc", "profession": null, "createdOn": "2022-01-05 10:00:05" },
當我將其轉換為字串時,我需要如下輸出:
'{"name">"abc", "profession">nil, "createdOn">"2022-01-05 10:00:05" }
如果我像這樣全域替換:
JSON.stringify(inputObject).replace(/null/g, 'nil').replace(/:/g, '>'),
我會得到:
{"name">"abc", "profession">nil, "createdOn">"2022-01-05 10>00>05" }
這里有幾個問題:
- 它替換了 的所有實體
:,而我只需要替換鍵名前面的實體(如鍵值:) - 雖然替換
nulltonil正在作業,但如果profession是"profession": "null blah",它會成功"profession">"nil blah"。如果值不是,我不想修改null。
有沒有更好的方法來處理上述情況?
uj5u.com熱心網友回復:
簡單的解決方案可能是:
const a = {
name: 'abc',
gender: 'null',
gender2: 'my null value',
profession: null,
createdOn: '2022-01-05 10:00:05',
};
const b = JSON.stringify(a)
.replace(/":/g, '">')
.replace(/">null/g, '">nil')
;
console.log(b);
輸出:
{"name">"abc","gender">"null","gender2">"my null value","profession>nil,"createdOn
">"2022-01-05 10:00:05"}
uj5u.com熱心網友回復:
function format(inputObject) {
if (inputObject) {
if (typeof inputObject === "object" && !Array.isArray(inputObject)) {
const objectEntries = Object.entries(inputObject);
if (objectEntries.length) {
const reformatted =
objectEntries
.map(([key, value]) => `"${key}">${!value ? 'nil' : "\"" value "\""}`)
.join(",") || "";
return `{${reformatted}}`;
}
return "{}";
}
}
return `${inputObject}`;
}
插圖
const obj = {
"name": "abc",
"profession": null,
"createdOn": "2022-01-05 10:00:05"
};
function format(inputObject) {
if (inputObject) {
if (typeof inputObject === "object" && !Array.isArray(inputObject)) {
const objectEntries = Object.entries(inputObject);
if (objectEntries.length) {
const reformatted =
objectEntries
.map(([key, value]) => `"${key}">${!value ? 'nil' : "\"" value "\""}`)
.join(",") || "";
return `{${reformatted}}`;
}
return "{}";
}
}
return `${inputObject}`;
}
console.log(format(obj));
WYSIWYG=>WHAT YOU SHOW IS WHAT YOU GET
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/441667.html
標籤:javascript 节点.js 打字稿
