这个json发生在目的地或起源位于英国境外时,因此没有给我任何结果!我需要检查这是否为空检查,所以我没有收到空指针异常
JSON结果:
{
"destination_addresses" : [ "Durham, NC, USA" ],
"origin_addresses" : [ "Lancashire, UK" ],
"rows" : [
{
"elements" : [
{
"status" : "ZERO_RESULTS"
}
]
}
],
“状态”:“确定” }
代码:
public static void extractJsonFromRequest(GoogleResponsePojo response) {
String destinationAddress =
response.getDestination_addresses().get(0);
String timeTaken =
response.getRows().get(0).getElements().get(0).getDuration().getText();
String originAddress = response.getOrigin_addresses().get(0);
System.out.println("It will take ** "+ timeTaken + " ** to walk
from " + originAddress + " to " + destinationAddress);
}
Google Reponse POJO是json的结构:
public class GoogleResponsePojo {
private List<String> destination_addresses;
private List<String> origin_addresses;
private List<Rows> rows;
public List<String> getDestination_addresses() {
return destination_addresses;
}
public void setDestination_addresses(List<String> destination_addresses) {
this.destination_addresses = destination_addresses;
}
public List<String> getOrigin_addresses() {
return origin_addresses;
}
public void setOrigin_addresses(List<String> origin_addresses) {
this.origin_addresses = origin_addresses;
}
public List<Rows> getRows() {
return rows;
}
public void setRows(List<Rows> rows) {
this.rows = rows;
}
}
class Rows {
private List<Element> elements;
public List<Element> getElements() {
return elements;
}
public void setElements(List<Element> elements) {
this.elements = elements;
}
}
class Element {
private TextValue distance;
private TextValue duration;
public TextValue getDistance() {
return distance;
}
public void setDistance(TextValue distance) {
this.distance = distance;
}
public TextValue getDuration() {
return duration;
}
public void setDuration(TextValue duration) {
this.duration = duration;
}
}
class TextValue {
private String text;
private String value;
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
我基本上需要解析下面的json以便我可以说(如果status!= ZERO_RESULTS)保存响应,否则抛出异常!可能很容易,但即时挣扎!非常感谢!
答案 0 :(得分:1)
将GoogleResponsePojo更改为:
_this.recorder = new MediaRecorder(new MediaStream(e.stream.getVideoTracks()), options);
您可以按以下方式 public class GoogleResponsePojo {
private List<String> destination_addresses;
private List<String> origin_addresses;
private List<Rows> rows;
public void setDestination_addresses(List<String> destination_addresses) {
this.destination_addresses = destination_addresses;
}
public void setOrigin_addresses(List<String> origin_addresses) {
this.origin_addresses = origin_addresses;
}
public void setRows(List<Rows> rows) {
this.rows = rows;
}
//getters
}
private static class Rows{
private List<Element> elements;
public void setElements(List<Element> elements) {
this.elements = elements;
}
//getters
}
private static class Element{
private TextValue distance;
private TextValue duration;
public void setDistance(TextValue distance) {
this.distance = distance;
}
public void setDuration(TextValue duration) {
this.duration = duration;
}
//getters
}
private static class TextValue{
private String text;
private String value;
public void setText(String text) {
this.text = text;
}
public void setValue(String value) {
this.value = value;
}
//getters
}
:
duration
我建议使用基于apache http api构建的http-request。它易于使用:
GoogleResponsePojo name = gson.fromJson(response.toString(),GoogleResponsePojo.class);
name.getRows().get(0).getDuration().getText();