Convert JSON to Map or Map to Json in Java

One of the common uses cases while working with json is to convert it to a java object or convert java object to json. There is an open source library available in java which helps in processing json objects.

Add the Jackson dependency in pom.xml file



The Java class :

public static void main(String args[]) {
        ObjectMapper mapper = new ObjectMapper();
        Map m = new HashMap();
        Map personMap = new HashMap<>();
        Map personDetail = new HashMap();
        personDetail.put("firstname", "Bob");
        personDetail.put("lastname", "jackson");
        personDetail.put("age", "12");
        personDetail.put("city", "Berlin");

        personMap.put("person", personDetail);
        //convert Map to json string
        try {
        } catch (IOException e) {

        // convert json to Map
        String json = "{\"person\":{\"age\":\"12\",\"lastname\":\"jackson\""
                + ",\"firstname\":\"Bob\",\"city\":\"Berlin\"}}"
        try {
            Map map = mapper.readValue(json, Map.class);
            System.out.println("Map is " + map);
        } catch (Exception e) {

Output is

Output: {“person”:{“age”:”12″,”lastname”:”jackson”,”firstname”:”Bob”,”city”:”Berlin”}}

Map is {person={age=12, lastname=jackson, firstname=Bob, city=Berlin}}

ObjectMapper mapper = new ObjectMapper();

Creating an object of ObjectMapper is a expensive operation and as best practice it should be created as a singleton object in a class.

Rails tip #2 How to add css class on rails form

At times its required to make pretty . Forms can be created using form_for or form_tag

To add css class to form_for

  form_for @user, :html=>{:class=> "foo"}

To add css class to form_tag

  form_tag({:action => 'new',...}, {:class => 'my_form'}) do

Happy Coding !!

Rails tip #1 – Set a custom layout for a web page

Its may require that you dont want to use application.html layout for some pages . For e.g display different header on page2 which than page 1 and the header is rendered in application.html.erb.

One way is to create a new layout for e,g headerless.html.erb inside a views->layout folder and in the particular controller which serves the request set the new layout .

 class SomeController < ApplicationController

    layout :headless , :only=>[:your_action1,:your_action2]


With the layout keyword you can use options such as :only, :except.

Skip maven test while building a project .

Though I would encourage people to skip tests while building a project but sometimes its helpful to go down this path.
Skip Unit Test
To skip the entire unit test, uses argument “-Dmaven.test.skip=true“.

 mvn install -Dmaven.test.skip=true
 mvn package -Dmaven.test.skip=true

Or define skipTests in maven-surefire-plugin.


Now, build the project again, the entire unit tests will be ignored.

Create a binary tree from an array of integers .

Write a function that given an array representation of a binary tree will convert it into a typical tree format.
The following is a visual representation of expected input and output:

Input: [7, 3, 9, 2, 4, 8, 10,11,12,13,14]
/ \
3 9
/\ /\
2 4 8 10

One way to build a tree is that we know that array is like a breadth first traversal . So the series it appears is the same order we need to create tree. Also other property of tree is for a node at index “index” , left child is [2*index+1] and right child is [2*index+2].

public Node createTree(Integer[] array){
        if(array == null || array.size == 0)
         return null;
     	Node n = array[0];
     	Queue queue =new Queue();
        int count = 1;
     	while(count < array.length || !queue.isEmpty()){
     		n.left = new Node(array[count++]);
                if(count < array.length){
                  n.right = new Node(array[count++])
     return n;