gpt4 book ai didi

java - 使用gson在java中循环json对象

转载 作者:行者123 更新时间:2023-12-02 02:55:07 25 4
gpt4 key购买 nike

下面是以 json 格式存储在 json 文件中的设备详细信息列表。

{"Device_details":[
{"DUT1":
{"Interface":"eth1",
"IP_address":"40.0.0.1/24"},
"DUT3":
{"Interface":"eth3",
"IP_address":"40.0.0.3/24"},
"DUT2":
{"Interface":"eth2",
"IP_address":"40.0.0.2/24"
}
}
]}

我想循环遍历每个设备并打印出列表中与各个DUT对应的每个设备的接口(interface)和IP地址。

示例输出:

Device : DUT1
Interface : eth1
IP_address : 40.0.0.1/24

Device : DUT2
Interface : eth2
IP_address : 40.0.0.2/24

等等......显示设备的顺序并不重要,我想使用 GSON 来完成此操作。到目前为止我的代码:

JsonParser parser = new JsonParser();
JsonElement jsonElement = parser.parse(new FileReader(fileName.json));
jsonObject = jsonElement.getAsJsonObject();
JsonArray devices = jsonObject.getAsJsonArray("Device_details");
JsonElement device_list = devices.get(0);
JsonObject devices_object= device_list.getAsJsonObject();
System.out.println(devices_object.size());
for (int i=0; i < devices_object.size(); i++){
//How do I access the devices and it's details
};

最佳答案

public static void main(String[] args) throws FileNotFoundException {
Gson gson = new Gson();
JsonReader reader = new JsonReader(new FileReader("pathToJson.json"));
Response res = gson.fromJson(reader, Response.class);
for (Map<String, Device> map : res.Device_details) {
for (Map.Entry<String,Device> e : map.entrySet()){
System.out.println("Device : " + e.getKey());
Device device = e.getValue();
System.out.println("Interface : " + device.Interface);
System.out.println("IP_address : " + device.IP_address);
}
}
}

class Device {
String Interface;
String IP_address;
}


class Response {
List<HashMap<String, Device>> Device_details = new ArrayList();
}

JsonReadergson.fromJson 允许您将 json 映射到 java 对象。

这里,Response 是“根元素”。其属性 Device_details 必须与 json 中的名称相同。

关于java - 使用gson在java中循环json对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43229918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com