JSON'u (JavaScript'te) Stringify ve Regex replace ile biçimlendirme konusunda yardıma ihtiyacınız var
Jan 19 2021
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 Jan 19 2021 at 06:36
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 Jan 19 2021 at 06:31
JSON.stringify(test_json,null,3).replace(/([^}]?),\n( )*"/g, '$1, "');
en iyi yol olduğundan emin değilim ama akla gelen ilk şey
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı
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'