samedi 16 mai 2015

ArrayList data convert to Json Format Using Jackson Json

Need Below Output -:

{
"id": "1",
"name": "EDUCATION",
"data": "",
"children": [
    {
        "id": "1",
        "name": "STREAM-ENGG",
        "data": "",
        "children": [
            {
                "id": "1",
                "name": "COMPUTER SCIENCE",
                "data": "",
                "children": [
                    {
                        "id": "1",
                        "name": "YEAR-01",
                        "data": ""
                    },
                    {
                        "id": "1",
                        "name": "YEAR-02",
                        "data": ""
                    },
                    {
                        "id": "1",
                        "name": "YEAR-03",
                        "data": ""
                    },
                    {
                        "id": "1",
                        "name": "YEAR-04",
                        "data": ""
                    }
                ]
            },
            {
                "id": "1",
                "name": "EXTC",
                "data": "",
                "children": [
                    {
                        "id": "1",
                        "name": "YEAR-01",
                        "data": ""
                    },
                    {
                        "id": "1",
                        "name": "YEAR-02",
                        "data": ""
                    },
                    {
                        "id": "1",
                        "name": "YEAR-03",
                        "data": ""
                    },
                    {
                        "id": "1",
                        "name": "YEAR-04",
                        "data": ""
                    }
                ]
            },
            {
                "id": "1",
                "name": "BIOMEDICAL",
                "data": "",
                "children": [
                    {
                        "id": "1",
                        "name": "YEAR-01",
                        "data": ""
                    },
                    {
                        "id": "1",
                        "name": "YEAR-02",
                        "data": ""
                    },
                    {
                        "id": "1",
                        "name": "YEAR-03",
                        "data": ""
                    },
                    {
                        "id": "1",
                        "name": "YEAR-04",
                        "data": ""
                    }
                ]
            },
            {
                "id": "1",
                "name": "CHEMICAL",
                "data": "",
                "children": [
                    {
                        "id": "1",
                        "name": "YEAR-01",
                        "data": ""
                    },
                    {
                        "id": "1",
                        "name": "YEAR-02",
                        "data": ""
                    },
                    {
                        "id": "1",
                        "name": "YEAR-03",
                        "data": ""
                    },
                    {
                        "id": "1",
                        "name": "YEAR-04",
                        "data": ""
                    }
                ]
            }
        ]
    },
    {
        "id": "1",
        "name": "STREAM-MEDICAL",
        "data": "",
        "children": [
            {
                "id": "1",
                "name": "MBBS",
                "data": "",
                "children": [
                    {
                        "id": "1",
                        "name": "YEAR-01",
                        "data": ""
                    },
                    {
                        "id": "1",
                        "name": "YEAR-02",
                        "data": ""
                    },
                    {
                        "id": "1",
                        "name": "YEAR-03",
                        "data": ""
                    },
                    {
                        "id": "1",
                        "name": "YEAR-04",
                        "data": ""
                    },
                    {
                        "id": "1",
                        "name": "YEAR-05",
                        "data": ""
                    }
                ]
            },
            {
                "id": "1",
                "name": "BHMS",
                "data": "",
                "children": [
                    {
                        "id": "1",
                        "name": "YEAR-01",
                        "data": ""
                    },
                    {
                        "id": "1",
                        "name": "YEAR-02",
                        "data": ""
                    },
                    {
                        "id": "1",
                        "name": "YEAR-03",
                        "data": ""
                    }
                ]
            },
            {
                "id": "1",
                "name": "BDS",
                "data": "",
                "children": [
                    {
                        "id": "1",
                        "name": "YEAR-01",
                        "data": ""
                    },
                    {
                        "id": "1",
                        "name": "YEAR-02",
                        "data": ""
                    },
                    {
                        "id": "1",
                        "name": "YEAR-03",
                        "data": ""
                    },
                    {
                        "id": "1",
                        "name": "YEAR-04",
                        "data": ""
                    }
                ]
            }
        ]
    }
]}

DTO Class -:

public class EducationDTO {
String unid;
String Node_Name;
String Node_Details;
String Parent_Id;
String Record_State;
String HasChildren;


public String getUnid() {
return unid;
}
public void setUnid(String unid) {
this.unid = unid;
}
public String getNode_Name() {
return Node_Name;
}
public void setNode_Name(String node_Name) {
Node_Name = node_Name;
}
public String getNode_Details() {
return Node_Details;
}
public void setNode_Details(String node_Details) {
Node_Details = node_Details;
}
public String getParent_Id() {
return Parent_Id;
}
public void setParent_Id(String parent_Id) {
Parent_Id = parent_Id;
}
public String getRecord_State() {
return Record_State;
}
public void setRecord_State(String record_State) {
Record_State = record_State;
}

public String getHasChildren() {
return HasChildren;
}
public void setHasChildren(String hasChildren) {
HasChildren = hasChildren;
}

I have tried this logic but when i will add new data this logic failed. In below java code i am iterating same list multiple time instead of it i need other solution so i can add more data in my arraylist.

    JsonFactory jFactory=new JsonFactory();
    Writer writer = new StringWriter();
    JsonGenerator jsGenerator = jFactory.createJsonGenerator(writer);
    jsGenerator.writeStartObject();

    jsGenerator.writeEndObject();
    for(EducationDTO eDto:vDto.getEducationDTOList()){
        if(eDto.getParent_Id().equalsIgnoreCase("0")){
            jsGenerator.writeStringField("id",eDto.getUnid());
            jsGenerator.writeStringField("name",eDto.getNode_Name());
            jsGenerator.writeStringField("data","");
            if(eDto.getHasChildren().equalsIgnoreCase("YES")){
                jsGenerator.writeFieldName("children");
                jsGenerator.writeStartArray();
                for(EducationDTO eDto2:vDto.getEducationDTOList()){
                    if(eDto2.getParent_Id().equalsIgnoreCase(eDto.getUnid())){
                        jsGenerator.writeStartObject();
                        jsGenerator.writeStringField("id",eDto.getUnid());
                        jsGenerator.writeStringField("name",eDto2.getNode_Name());
                        jsGenerator.writeStringField("data","");
                        if(eDto2.getHasChildren().equalsIgnoreCase("YES")){
                            jsGenerator.writeFieldName("children");
                            jsGenerator.writeStartArray();
                            for(EducationDTO eDto3:vDto.getEducationDTOList()){
                                if(eDto3.getParent_Id().equalsIgnoreCase(eDto2.getUnid())){
                                    jsGenerator.writeStartObject();
                                    jsGenerator.writeStringField("id",eDto.getUnid());
                                    jsGenerator.writeStringField("name",eDto3.getNode_Name());
                                    jsGenerator.writeStringField("data","");
                                    if(eDto2.getHasChildren().equalsIgnoreCase("YES")){
                                        jsGenerator.writeFieldName("children");
                                        jsGenerator.writeStartArray();
                                        for(EducationDTO eDto4:vDto.getEducationDTOList()){
                                            if(eDto4.getParent_Id().equalsIgnoreCase(eDto3.getUnid())){
                                                jsGenerator.writeStartObject();
                                                jsGenerator.writeStringField("id",eDto4.getUnid());
                                                jsGenerator.writeStringField("name",eDto4.getNode_Name());
                                                jsGenerator.writeStringField("data","");
                                                jsGenerator.writeEndObject();
                                            }
                                        }
                                        jsGenerator.writeEndArray();

                                    }
                                    jsGenerator.writeEndObject();
                                }
                            }
                            jsGenerator.writeEndArray();

                        }
                        jsGenerator.writeEndObject();
                    }
                }
                jsGenerator.writeEndArray();

            }
            break;
        }
    }


    jsGenerator.close();

Aucun commentaire:

Enregistrer un commentaire