【问题标题】:Light weight jar to achieve both JSON parsing & object mapping轻量级jar实现JSON解析和对象映射
【发布时间】:2016-02-10 15:12:09
【问题描述】:

任务 1

json1:

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

我需要解析这个 JSON 并获取 url 字段。

任务 2

json2:

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

我需要将此 JSON 映射到下面提到的 java 对象。

public class UserDetail {

    private String name;

    private String location;

    //getters setters
}

我使用 gson(2.5 版)进行对象映射和 json(20151123 版)进行解析。

我不想为这么简单的任务使用两个罐子。

如何使用 1 个罐子(任何轻量级罐子)来实现这一点?

【问题讨论】:

  • 而你不想拥有两个 jar 文件的原因是 ....
  • @Thilo 我认为可以使用 1 个罐子来完成。不是吗?
  • 好吧,对于初学者,您也可以使用 GSON 进行 JSON 解析。你为什么要为此使用另一个库? stackoverflow.com/questions/5490789/…
  • @Thilo 是的,两者都是使用 gson 实现的。谢谢。

标签: java json gson


【解决方案1】:

我检查了 gson 并发现使用它可以实现解析和对象映射。

解析:

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();
 }

对象映射:

JsonObject jObject = new JsonParser().parse(json2).getAsJsonObject();
Gson gson = new Gson();
UserDetail userDetail = gson.fromJson(jObject.toString(), UserDetail.class);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多