java - 如何从 jsonArray 获取相同的字段

标签 java json parsing

使用 gson,我解析了 json 格式的数据,现在我需要从该数据中提取值“dt_txt”及其值“temp”,但我不明白如何将它们提取并粘贴到 key 所在的集合中是“dt_txt”,其值为“temp” 我收到的数据:/image/sGCKI.jpg

package testClassPackage;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

public class weatherParse {

    public static void main(String[] args) throws IOException {

        String sURL = "http://api.openweathermap.org/data/2.5/forecast/?q=Odessa,ua&APPID=518a64dd48106aa542464d3bd94d12ce"; //just a string

        // Connect to the URL using java's native library
        URL url = new URL(sURL);
        URLConnection request = url.openConnection();
        request.connect();

        // Convert to a JSON object to print data
        JsonParser jp = new JsonParser(); //from gson
        JsonElement root = jp.parse(new InputStreamReader((InputStream) request.getContent())); //Convert the input stream to a json element
        JsonObject rootobj = root.getAsJsonObject(); //May be an array, may be an object.
        JsonArray message = rootobj.get("list").getAsJsonArray();
        for (int i = 0; i < message.size(); i++) {

            System.out.println();
        }
        System.out.println(message);
    }
}

最佳答案

迭代 JsonArray(这里的消息我改为消息)作为 JsonElement 并从元素中获取主对象,然后获取相应的温度。

   Map<String,String> data = new HashMap<>();

    for(JsonElement lst : messages) {
        JsonObject lstObject = lst.getAsJsonObject();
        JsonObject el = (JsonObject) lstObject.get("main");
        System.out.println(lstObject.get("dt_txt").getAsString()  +" "+el.get("temp").getAsString());
        data.put(lstObject.get("dt_txt").getAsString(), el.get("temp").getAsString()); 
    }

关于java - 如何从 jsonArray 获取相同的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57864922/

相关文章:

java - View.OnClickListener,你能解释一下吗?

java - 如何使用 JAXB 设置默认命名空间

javascript - 强制定向布局,在鼠标悬停时列出源和目标值

c++ - 使用 Boost Spirit Qi 解析分隔的 token 列表

javascript - 使用 eval 解析 JSON 字符串

java - Hibernate外键为主键

java - 转换递归函数并更多地调用迭代函数java

javascript - 如何将异步调用返回的Json数据正确绑定(bind)到knockout observableArray

java - JSON 添加到 JSONArray 问题

c# - Excel 公式伪代码