如何在Android中使用Jackson从JSONArray url获取java对象

时间:2015-01-11 07:04:16

标签: java android json android-listview jackson

这是我的URL中的JSON https://api.myjson.com/bins/142jr

[
  {
    "serviceNo":"SR0000000001",
    "serDate":"17",
    "serMonth":"DEC",
    "serYear":"2015",
    "serTime":"02.30 AM",
    "serApartmentName":"Galaxy Apartments"
  },
  {
    "serviceNo":"SR0000000002",
    "serDate":"19",
    "serMonth":"JUN",
    "serYear":"2016",
    "serTime":"03.30 AM",
    "serApartmentName":"The Great Apartments"
  }
]

我有一个ListView我希望从在线JSON填充详细信息,上面我给出了一个链接和示例json任何人在java中给出样本jackson代码

谢谢你提前, Rajesh Rajendiran

2 个答案:

答案 0 :(得分:2)

要使用jackson,您需要创建一个模型类:

[
  {
    "serviceNo":"SR0000000001",
    "serDate":"17",
    "serMonth":"DEC",
    "serYear":"2015",
    "serTime":"02.30 AM",
    "serApartmentName":"Galaxy Apartments"
  },
  {
    "serviceNo":"SR0000000002",
    "serDate":"19",
    "serMonth":"JUN",
    "serYear":"2016",
    "serTime":"03.30 AM",
    "serApartmentName":"The Great Apartments"
  }
]

对于上面的json,模型类将是:

public class SomeClass {
 private String serviceNo;
 private String serDate;
 private String serMonth;
 private String serYear;
 private String serTime;
 private String serApartmentName;

 @JsonProperty("serviceNo") //to bind it to serviceNo attribute of the json string
 public String getServiceNo() {
  return serviceNo;
 }

 public void setServiceNo(String sNo) { //@JsonProperty need not be specified again
  serviceNo = sNo;
 }

 //create getter setters like above for all the properties.
 //if you want to avoid a key-value from getting parsed use @JsonIgnore annotation

}

现在每当你将上面的json作为存储在变量中的字符串说jsonString时,使用以下代码来解析它:

ObjectMapper mapper = new ObjectMapper(); // create once, reuse
ArrayList<SomeClass> results = mapper.readValue(jsonString,
   new TypeReference<ArrayList<ResultValue>>() { } );

结果现在应该包含两个SomeClass对象,将上面的json解析为相应的对象。

PS:自从我使用Jackson进行解析以来已经很长时间了,所以这段代码可能需要一些改进。

答案 1 :(得分:0)

如果您将此作为http响应,那么我建议使用spring rest template for android。 它支持消息转换器。这就是编组和解组的责任。

[更新] 这是一个相同的博客:http://www.journaldev.com/2552/spring-restful-web-service-example-with-json-jackson-and-client-program

请参阅文档以获取更多详细信息:

http://docs.spring.io/spring-android/docs/current/reference/html/rest-template.html