信頼できるJSON文字列バリデーターは、有効なJSONであるかどうかを確認するためのものです。例:{"color":"red"}
または{"amount":15}
を渡すと、それは合格しますが、"My invalid json"
のようなものは受け付けません。要するに、私はwww.jsonlint.comバリデータと同じくらい信頼できるものが必要です。 BTW - 私はJavaオブジェクトにデシリアライズすることに興味がありません。なぜならそれは私の必要条件ではないからです。任意の文字列を受け取る可能性があり、有効なJSON形式を持つことを検証するだけです。Javaで信頼できるJSON文字列バリデーター
私は既に、このフォーラムで、Java 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;
}
、以下の文字列(行全体が)まだ通過し、私はオブジェクト/配列がいくつかの親オブジェクト内にカプセル化されていない場合、他の言い方をすればいいです。これらの行をwww.jsonlint.comバリデーターに貼り付けると、両方とも失敗します。
いつも正規表現オプションがあることは知っていますが、JSONの再帰的性質のために100%保証されないことがあります。正規表現はかなり複雑になります。
ご協力いただきますようお願い申し上げます。
他のライブラリを試しましたか?私はジャクソンがそれを許さないと思う。 – yshavit
''私の無効なjson "は実際には有効なJSON文字列であるため、無効なJSONの悪い例です。 – pfyod