Butuh bantuan dalam memformat JSON (dalam JavaScript) dengan mengganti Stringify dan Regex
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
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
JSON.stringify(test_json,null,3).replace(/([^}]?),\n( )*"/g, '$1, "');
tidak yakin itu cara terbaik tapi itu hal pertama yang terlintas dalam pikiran
Kiat Pemilik Anjing yang Bermanfaat: Mengapa Penting untuk Membiarkan Anjing Anda Mengendus di Jalan