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

标签 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 代码

感谢您的提前, 拉杰什·拉金迪兰

最佳答案

要使用 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 进行解析了,所以这段代码可能需要一些改进。

关于java - 如何在 Android 中使用 Jackson 从 JSONArray url 获取 java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27884783/

相关文章:

java - "Content is not allowed in prolog"使用 JAXB 解码 JSON 时

java - 安息 JsonPath : flat array of elements in hierarchy

java - 围绕基于命令行的程序编写 gui 包装器

java - 如何停止在 java 中重叠两个 jpanel

android - 如何更快地在设备上进行测试?

android - Android 内存不足错误

javascript - 通过 Websockets 发送的 JSON 对象的大小

java - 带有嵌套字段的Spring数据查询(连接其他列)

java - Java 中的字段。字段和方法之间的区别

android - 创建一个仅指向 URL 的移动应用程序