Güvenilir bir JSON dizgesi doğrulayıcı ile gelen bir yardıma ihtiyacım var - bir dizeyi alan ve geçerli bir JSON olup olmadığını kontrol eden bir yöntem. Örnek: {"color":"red"}
veya {"amount":15}
'u geçersem "My invalid json"
gibi bir şey geçmeyecektir. Kısacası, www.jsonlint.com validatoru kadar güvenilir bir şeye ihtiyacım var. BTW - java nesnesine serileştirmekle ilgilenmiyorum, çünkü bu benim şartım değil. Rasgele bir dizge alabilirim ve tek yapmam gereken geçerli bir JSON biçimine sahip olduğunu doğrulamak.Java'da Güvenilir JSON dizgi doğrulayıcısı
Bu forumda java JSON dizgisi doğrulamaları ile ilgili konuyla ilgili birkaç ileti üzerinde araştırma yaptım. aşağıdaki şekilde org.json.JSONObject
ve org.json.JSONArray
:
Ben bu sınıfları kullanarak çalıştı:
şimdiye kadar ne yaptımAncak
private static boolean isValidJSONStringObject(String requestBody){
try {
new JSONObject(requestBody);
} catch (JSONException jsonEx) {
return false;
}
return true;
}
private static boolean isValidJSONStringArray(String requestBody) {
try {
new JSONArray(requestBody);
} catch (JSONException jsonEx) {
return false;
}
return true;
}
aşağıdaki dizeleri (bütün çizgiler) hala geçmesi ve bunlar olmamalıdır, başka bir deyişle
{"color":"red"}{"var":"value"}
[1,2,3][true,false]
nesneler/diziler bazı üst nesne/dışında herhangi bir kapsülleme ağırlık tekrar olduğunda. Bu satırları www.jsonlint.com validator'a yapıştırırsanız, ikisi de başarısız olur.
Her zaman bir regex seçeneğinin olduğunu biliyorum, ancak JSON'un yinelemeli doğası nedeniyle% 100 garanti edilemediğini ve bu normal ifadelerin oldukça karmaşık olacağını biliyorum.
Herhangi bir yardım büyük takdir edilecektir!
Diğer kütüphaneleri denediniz mi? Bence Jackson buna izin vermiyor. – yshavit
'" Geçersiz json'um ", geçersiz bir JSON örneğidir, çünkü aslında geçerli bir JSON dizesidir. – pfyod