Hello我试图从JsonObject获取元素的值。我正在使用java Gson图书馆。
这是代码的相关部分:
String s = "http://maps.googleapis.com/maps/api/directions/json?origin=30.065634,31.209473&destination=29.984177,31.440052&sensor=false";
URL url = new URL(s);
BufferedReader r = new BufferedReader(new InputStreamReader(
((HttpURLConnection) url.openConnection()).getInputStream()));
JsonStreamParser jsp = new JsonStreamParser(r);
JsonParser jp = new JsonParser();
JsonElement jsonElement = jp.parse(r);
JsonObject jsonObject = jsonElement.getAsJsonObject();
System.out.println(jsonObject.get("summary"));
这是Json的一部分:
"status": "OK", "routes": [ {
"summary": "Mehwar Al Moneeb",
"legs": [ {
"steps": [ {
"travel_mode": "DRIVING",
"start_location": {
"lat": 30.0655100,
"lng": 31.2096600
},
"end_location": {
"lat": 30.0654400,
"lng": 31.2096000
},
"polyline": {
"points": "mdovDksn}DLJ",
"levels": "BB"
},
"duration": {
"value": 1,
"text": "1 min"
},
"html_instructions": "Head \u003cb\u003esouthwest\u003c/b\u003e on \u003cb\u003eOmar Toson\u003c/b\u003e toward \u003cb\u003eMohammed Roshdi\u003c/b\u003e",
"distance": {
"value": 9,
"text": "9 m"
}
}
当我得到顶部元素“路由”它的罚款和打印它显示元素内部,但当我尝试例如获得元素“摘要”如图所示,返回为空,这是什么显示在输出,所以后来我无法得到它的价值。 怎么了?如何获取任何JsonElement的值?请尽快回复我。提前谢谢。
答案 0 :(得分:0)
路由是一个javascript数组。 Summary是该数组中第一个对象的属性,因此您需要使用jsonObject.getAsJsonArray("routes").get(0).get("summary");
或等效项。我没有使用过您的Java库,但JS代码是jsonObject.routes[0].summary
修改:查看GSON Documentation并更新了代码。