Butuh bantuan dalam memformat JSON (dalam JavaScript) dengan mengganti Stringify dan Regex
Jan 19 2021
Saya kehilangan sesuatu dengan regex dan menghapus huruf terakhir dari setiap item sebelum koma.
Kode sampel:
let test_json = {
"a" : { "a1" : "one", "is_active" : true, "a2" : "two" },
"b" : { "b1" : "one", "is_active" : true, "b2" : "two" }
};
JSON.stringify(test_json, null, 3).replace(/[^}],\n( )*"/g, ', "');
Hasilnya adalah:
"{
"a": {
"a1": "one, "is_active": tru, "a2": "two"
},
"b": {
"b1": "one, "is_active": tru, "b2": "two"
}
}"
Apa yang saya coba dapatkan adalah:
"{
"a": {
"a1": "one", "is_active": true, "a2": "two"
},
"b": {
"b1": "one", "is_active": true, "b2": "two"
}
}"
Hal-hal yang salah:
"satu, harus" satu ",
" benar, harus "benar",
Jawaban
3 BenWainwright Jan 19 2021 at 06:36
Masalah Anda adalah Anda menemukan urutan karakter berikut
- Karakter apa pun yang bukan kurung kurawal tutup
- Koma
- Karakter baris baru
- Sejumlah spasi
Dan mengganti seluruh urutan . Karena "e" di akhir "true" bukan penjepit penutup, ia juga akan diganti.
Yang Anda butuhkan adalah item pertama dalam urutan menjadi "koma yang muncul segera setelah tanda kurung kurawal". Anda dapat melakukan ini menggunakan pandangan negatif di belakang .
let test_json = {
a: {
a1: "one",
is_active: true,
a2: "two"
},
b: {
b1: "one",
is_active: true,
b2: "two"
},
};
const result = JSON.stringify(test_json, null, 3).replace(
/(?<!}),\n\s*/g,
", "
);
console.log(result);
1 MCP Jan 19 2021 at 06:31
JSON.stringify(test_json,null,3).replace(/([^}]?),\n( )*"/g, '$1, "');
tidak yakin itu cara terbaik tapi itu hal pertama yang terlintas dalam pikiran
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'