मुझे एक विश्वसनीय JSON स्ट्रिंग सत्यापनकर्ता के साथ आने में कुछ मदद चाहिए - एक विधि जो एक स्ट्रिंग का सेवन करती है और जांचती है कि यह वैध JSON है या नहीं। उदाहरण: यदि मैं {"color":"red"}
या {"amount":15}
पास करता हूं तो यह गुजर जाएगा लेकिन "My invalid json"
जैसे कुछ नहीं होगा। संक्षेप में मुझे ऐसा कुछ चाहिए जो www.jsonlint.com सत्यापनकर्ता के रूप में विश्वसनीय है। बीटीडब्ल्यू - मुझे जावा ऑब्जेक्ट में deserializing में दिलचस्पी नहीं है, क्योंकि यह मेरी आवश्यकता नहीं है। मुझे एक मनमानी स्ट्रिंग मिल सकती है और मुझे बस इतना करना है कि यह वैध JSON प्रारूप है।जावा में विश्वसनीय JSON स्ट्रिंग सत्यापनकर्ता
मैंने पहले से ही इस मंच पर जावा JSON स्ट्रिंग सत्यापन के विषय में कई पोस्टों पर शोध किया है।
मैं अब तक क्या किया: निम्न तरीके से org.json.JSONObject
और org.json.JSONArray
:
मैं इन कक्षाओं में उपयोग करने की कोशिश
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;
}
हालांकि, निम्नलिखित तार (पूरे लाइनों) अभी भी अपनाते हैं, और वे नहीं करना चाहिए:
{"color":"red"}{"var":"value"}
[1,2,3][true,false]
दूसरे शब्दों में
जब मैं वस्तुओं/सरणियों w/बाहर कुछ पैरेंट ऑब्जेक्ट में कोई कैप्सूलीकरण दोहराया है। यदि आप इन पंक्तियों को www.jsonlint.com सत्यापनकर्ता में पेस्ट करते हैं तो वे दोनों विफल हो जाते हैं।
मुझे पता है कि हमेशा एक रेगेक्स विकल्प होता है लेकिन मुझे लगता है कि जेएसओएन की पुनरावर्ती प्रकृति की वजह से 100% की गारंटी नहीं दी जा सकती है और उन रेगेक्स अभिव्यक्तियां जटिल हैं।
किसी भी मदद की सराहना की जाएगी!
क्या आपने अन्य पुस्तकालयों की कोशिश की? मुझे लगता है कि जैक्सन उस उदाहरण की अनुमति नहीं देता है। – yshavit
'" मेरा अमान्य जेसन "' अवैध JSON का एक बुरा उदाहरण है, क्योंकि वास्तव में, यह एक वैध JSON स्ट्रिंग है। – pfyod