【问题标题】:Parse a specific field of a JSON without a wrapper class在没有包装类的情况下解析 JSON 的特定字段
【发布时间】:2017-02-19 15:29:47
【问题描述】:

Java 对象:

public class Foo {
 @JsonProperty("name")
 private String name;
 @JsonProperty("surname")
 private String surname;

 // getters + setters
}

JSON:

   {  
   "meta":{  
      "code":200
   },
   "data":[  
      {  
         "name":"John",
         "surname":"Smith"
      }
   ]
}

API 调用:

return restTemplate.getForEntity(requestUrl, Foo[].class).getBody();

是否可以在不创建额外的包装类的情况下解析“数据”数组?我尝试在我的 Java 类顶部添加 @JsonRootName("data") 注释,但它不起作用。

【问题讨论】:

  • Gson 可以很容易地做到这一点。 stackoverflow.com/questions/37231894/…
  • 看起来更复杂——添加数百个类进行解析不是我想要的
  • 数百?它是 1 个 TypeAdapterFactory,Jackson 本身有自定义反序列化。 Java 是面向对象的,那么你对类有什么看法呢?

标签: java json resttemplate jackson-databind


【解决方案1】:

你可以试试:

import org.json.*;

JSONObject obj = new JSONObject(" .... ");
String name = obj.getJSONObject("data").getString("name");

【讨论】:

  • 貌似用的是Jackson,不是org.json
猜你喜欢
  • 2019-09-28
  • 2016-08-11
  • 1970-01-01
  • 2012-03-27
  • 2012-03-23
  • 2019-11-16
  • 1970-01-01
  • 2022-06-20
相关资源
最近更新 更多