4

クエリを実行しようとしています。SELECT SQLその後、をループしてResultSet取得しcolumns、それらに対して取得したデータがcolumns有効かどうかを確認する必要がありJSON Stringます。

これcolumnsListは、特定のテーブルのArrayListすべての名前を含むものです。Columns

ResultSet rs = preparedStatement.executeQuery();

while (rs.next()) {
    for (String column : columnsList.split(",")) {

        //check whether rs.getString(column) is a valid JSON String?
        if(rs.getString(column).ISvalid_JSON_String()) {

            System.out.println("Valid JSON String data")
        }
    }
}

各列で取得したデータが有効なJSON文字列であるかどうかを確認するにはどうすればよいですか?

何かご意見は?

4

2 に答える 2

2

本当に有効な JSON であることを確認する必要がある場合は、解析する必要があります。私が気に入っている高速でシンプルな軽量パーサーは json-simple です。ここで彼らの例を見てください。

http://code.google.com/p/json-simple/wiki/DecodingExamples#Example_2_-_Faster_way:_Reuse_instance_of_JSONParser

私が得るあなたのコードを適応させる:

JSONParser parser = new JSONParser();
ResultSet rs = preparedStatement.executeQuery();

while (rs.next()) {
    for (String column : columnsList.split(",")) {
        //check whether rs.getString(column) is a valid JSON String?
        try{ 
            parser.parse(rs.getString(column)); 
            System.out.println("Valid JSON String data");
        } catch (ParseException e) {
            System.out.printlnn("Invalid JSON String data");
        }
    }
}
于 2013-02-27T23:16:53.460 に答える