我在如何解析以下数据方面遇到了一些麻烦:
[{
"Name": "EB DAVIE ST FS HOWE ST",
"Latitude": 49.27755,
"Longitude": -123.12698,
"Routes": "006, C23" }]
我想获得“路线”的所有值。然后我想从每个字符串创建一个新的“Route”,并将每个“Route”存储在一个集合中。但我不知道如何迭代它.. (对于这个例子,我们可以说每个Route只有一个名字)。
到目前为止,我有:
JSONObject stop = allStops.getJSONObject(i);
JSONArray array = stop.getJSONArray("Routes");
for(int i = 0; i < array.length(); i++) {
Route r = new Route(array.get(i)) // i thought (array.get(i)) would give you the String of each value (e.g. "006")
Set<Route> routes = new HashSet<Route>();
routes.add(array.get(i)); // then I thought I should just add each route
}
但这不起作用。我不知道该怎么做。
答案 0 :(得分:0)
String routes = stop.getString("Routes");
String[] split_routes = routes.split(", "); /*all routes will be stored in this array*/
答案 1 :(得分:0)
你可以尝试使用com.alibaba.fastjson.JSON,定义一个java类,然后像这样:
List<MyClass> list= JSON.parseObject(jsonStr, new TypeReference<List<MyClass>>() {});
答案 2 :(得分:0)
我刚刚修改了你的代码,这将解析你指定的JSON格式,
import org.json.JSONArray;
import org.json.JSONObject;
public class JsonParser {
public static void main(String[] args) throws Exception {
String jsonString = "[{\"Name\":\"EB DAVIE ST FS HOWE ST\",\"Latitude\":49.27755,\"Longitude\":-123.12698,\"Routes\":\"006, C23\"}]";
JSONArray arrayObject = new JSONArray(jsonString);
JSONObject inner = arrayObject.getJSONObject(0);
String[] keys = JSONObject.getNames(inner);
for(String entry : keys) {
System.out.println(entry+" : "+inner.get(entry));
}
}
}
getJSONObject(0)
。如果你有多个
JSONObject,您可以使用循环迭代值。<强>输出:强>
Latitude : 49.27755
Routes : 006, C23
Longitude : -123.12698
Name : EB DAVIE ST FS HOWE ST