public Rules getRules(int ruleId) { PreparedStatement ps = null; ResultSet rs = null; Rules rules = new Rules(); try { ps = con.prepareStatement(SELECT_RULE_QRY); ps.setInt(1, ruleId); rs = ps.executeQuery(); String sourceID = ""; String ruleString = ""; String sourceFields = ""; String ruleName = ""; int userId = 0; if (rs.next()) { ruleId = rs.getInt("RuleID"); ruleName = rs.getString(RULE_NAME); sourceID = rs.getString(SOURCE_ID); ruleString = rs.getString(RULE_QUERIES); sourceFields = rs.getString(SOURCE_FIELDS); userId = rs.getInt("user_id"); LOGGER.debug(ruleString); } rules.setRuleID(ruleId); rules.setRuleName(ruleName); rules.setSource(sourceID); rules.setUserId(userId); rules.setExtractFields(sourceFields); // objectMapper.convertValue(ruleString, Rule.class); List<Rule> ruless = new ArrayList<Rule>(); JsonObject rulesObj = (new JsonParser()).parse(ruleString).getAsJsonObject(); JsonArray rulesJson = rulesObj.get("rules").getAsJsonArray(); for (int i = 0; i < rulesJson.size(); i++) { JsonObject tempObj = rulesJson.get(i).getAsJsonObject(); Rule rule = new Rule(); rule.setRuleOperator(tempObj.get("ruleOperator").getAsString()); rule.setDataField(tempObj.get("dataField").getAsString()); rule.setRuleParameters(tempObj.get("ruleParameters").getAsString()); ruless.add(rule); } rules.setRules(ruless); // rulesObj.get("") // {"source":"ds59","rules":[{"ruleOperator":"coordinates","dataField":"loc","ruleParameters":"-120.2,40.1,-118.2,32.4"},{"ruleOperator":">","dataField":"value","ruleParameters":"100"}],"extractFields":"loc,value,timestamp"} LOGGER.debug(rules.toString()); } catch (Exception e) { e.printStackTrace(); } finally { } return rules; }