【发布时间】:2023-03-10 02:10:02
【问题描述】:
我正在尝试将以下 JSON 中的特定值添加到 Java ArrayList。然后我想在 JSP 中使用这个 ArrayList。这是 JSON:
{
"page": 1,
"rpp": 3,
"total": 3294,
"request_time": "2018-04-23T16:10:20+01:00",
"stops": [
{
"atcocode": "370023715",
"longitude": -1.46616,
"latitude": 53.38248,
"distance": 57
},
{
"atcocode": "370027281",
"longitude": -1.46583,
"latitude": 53.38228,
"distance": 77
},
{
"atcocode": "370022803",
"longitude": -1.46616,
"latitude": 53.38227,
"distance": 80
}
]
}
我想将“stops”子树下的每个经度和纬度元素添加到 2 个不同的 ArrayList 中。这是我尝试的代码:
public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
try {
String json = readUrl (link);
JsonParser parser = new JsonParser();
JsonElement element = parser . parse (json);
if (element.isJsonObject()) {
JsonObject bus = element . getAsJsonObject ();
JsonArray array = bus . getAsJsonArray ("stops");
for (int i = 0; i < array.size(); i++) {
List<String> longitudes = new ArrayList<String>();
List<String> latitudes = new ArrayList<String>();
longitudes.add(array.get(i)).get("longitude");
latitudes.add(array.get(i)).get("latitude");
request.setAttribute("longitudes", longitudes);
request.setAttribute("latitudes", latitudes);
RequestDispatcher dispatcher = request . getRequestDispatcher ("latlong.jsp");
dispatcher.forward(request, response);
}
}
}
}
我收到以下错误:“错误:不兼容的类型:JsonElement 无法转换为字符串”
提前谢谢你!
【问题讨论】:
-
这只是parens的问题吗?看起来你完全忽略了纬度/经度......试试这个
longitudes.add(array.get(i).get("longitude"));
标签: java json jsp servlets arraylist