Hi all,

 

Here I am taking response data from JSON using jackson API.I found a feature like using Jackson the properties can be set to bean properties.

 

 

private static String readUrl(String urlString) throws Exception {
        BufferedReader reader = null;
        try {
            URL url = new URL(urlString);
            reader = new BufferedReader(new InputStreamReader(url.openStream()));
            StringBuilder buffer = new StringBuilder();
            int read;
            char[] chars = new char[1024];
            while ((read = reader.read(chars)) != -1) {
                buffer.append(chars, 0, read);
            }
            return buffer.toString();
        } finally {


            if (reader != null) {
                reader.close();
            }
        }
    }
    public static void main(String[] args) throws Exception {
        ObjectMapper mapper = new ObjectMapper();
        mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        JsonNode root = mapper.readTree(readUrl("myUrl"));
        ArrayNode records = (ArrayNode) root.path("records");
        Iterator<JsonNode> iterator = records.getElements();
        while (iterator.hasNext()) {
            OrderBean ord= mapper.readValue(iterator.next(),OrderBean.class);
            System.out.println("OrderCode=" + ord.getOrderId() + " OrderDesc=" + ord.getOrderDesc());
        }
    }

 

I got the correct output here.

 

But now I want to generalize my method into a utility class so that I can reuse the same method for setting response data directly to respective beans as given below:-

 

My question is how will I pass the bean object in my utility class?


public static Object getResponseData(String response,[b]String bean[/b]) throws Exception {
        ObjectMapper mapper = new ObjectMapper();
        mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        JsonNode root = mapper.readTree(response);
        ArrayNode records = (ArrayNode) root.path("records");
        Iterator<JsonNode> iterator = records.getElements();
       [b] Class<?> beanClass = Class.forName(bean);[/b]
        while (iterator.hasNext()) {
           [b] beanClass = mapper.readValue(iterator.next(), Class.class);[/b]
           
        }
        return bean;
    }

FacebookTwitterLinkedin
Pin It
Joomla Tutorials for Beginners