0

Task 1

json1:

[
  {
    "name": "test1",
    "details": {
      "url": "url1"
    }
  },
  {
    "name": "test2",
    "details": {
      "url": "url2"
    }
  }
]

I need to parse this JSON & fetch url field.

Task 2

json2:

{
  "id": 1234,
  "name": "Devender Yadav",
  "location": "Noida"
}

I need to map this JSON to below mentioned java object.

public class UserDetail {

    private String name;

    private String location;

    //getters setters
}

I am using gson(version 2.5) for object mapping & json(version 20151123) for parsing.

I don't want to use two jars for such simple task.

How can I achieve this using 1 jar (any light weight jar) ?

Dev
  • 13,492
  • 19
  • 81
  • 174
  • And the reason you don't want to have two jar files is .... – Thilo Feb 10 '16 at 05:37
  • @Thilo I think it can be done using 1 jar. Don't you? – Dev Feb 10 '16 at 05:37
  • 2
    Well, for starters, you could do JSON parsing with GSON as well. Why do you use another library for that? http://stackoverflow.com/questions/5490789/json-parsing-using-gson-for-java?rq=1 – Thilo Feb 10 '16 at 05:39
  • @Thilo yes both are achieved using gson. Thanks. – Dev Feb 10 '16 at 06:02

1 Answers1

1

I checked gson & found both Parsing & Object Mapping are achiveved using it.

Parsing :

JsonArray jArray = new JsonParser().parse(json1).getAsJsonArray();

for (int j = 0; j < jArray.size(); j++) {
    JsonObject jObject = jArray.get(j).getAsJsonObject();
    String url = jObject.getAsJsonObject("details").get("url").getAsString();
 }

Object Mapping :

JsonObject jObject = new JsonParser().parse(json2).getAsJsonObject();
Gson gson = new Gson();
UserDetail userDetail = gson.fromJson(jObject.toString(), UserDetail.class);
Dev
  • 13,492
  • 19
  • 81
  • 174