JSON'u (JavaScript'te) Stringify ve Regex replace ile biçimlendirme konusunda yardıma ihtiyacınız var
Normal ifadede bir şey eksik ve virgülden önceki her öğenin son harfini kaldırıyor.
Basit kod:
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, ', "');
Sonuç:
"{
"a": {
"a1": "one, "is_active": tru, "a2": "two"
},
"b": {
"b1": "one, "is_active": tru, "b2": "two"
}
}"
Almaya çalıştığım şey:
"{
"a": {
"a1": "one", "is_active": true, "a2": "two"
},
"b": {
"b1": "one", "is_active": true, "b2": "two"
}
}"
Yanlış olan şeyler:
"bir," bir "
olmalı," gerçek, "doğru" olmalı,
Yanıtlar
3 BenWainwright
Senin sorunun şu ki, aşağıdaki karakter dizisini buluyorsun
- Kapanış ayracı olmayan herhangi bir karakter
- Bir virgül
- Yeni satır karakteri
- Herhangi bir sayıda boşluk
Ve tüm diziyi değiştiriyoruz . "Doğru" nun sonundaki "e" bir kapanış ayracı olmadığından, aynı zamanda değiştirilir.
Sıradaki ilk öğenin "kapanış ayracından hemen sonra gelen virgül" olması için ihtiyacınız olan şey. Geriye doğru negatif bir bakış kullanarak bunu yapabilirsiniz .
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, "');
en iyi yol olduğundan emin değilim ama akla gelen ilk şey
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'