gpt4 book ai didi

java - json-simple ,从文件中读取

转载 作者:行者123 更新时间:2023-12-01 17:32:57 25 4
gpt4 key购买 nike

我正在尝试迭代文件系统中的一个文件,其中包含许多设备的配置信息。

该文件的格式如下:

 {
"myDevicesInfo":
[
{
"DeviceType":"foo",
"DeviceName":"foo1",
"IPAddress":"192.168.1.1",
"UserName":"admin",
"Password":"pw"
}
]
}
<小时/>

尝试获取内部键值对时出现以下错误:

线程“main”中的异常 java.lang.ClassCastException:org.json.simple.JSONArray 无法转换为 org.json.simple.JSONObject 在 mav2bac.loadDevices(bac.java:98) 在 mav2bac.main(bac.java:70)

File appBase = new File("."); //current directory
String path = appBase.getAbsolutePath();
System.out.println(path);

Object obj = parser.parse(new FileReader("bac.yml"));

JSONObject jsonObject = (JSONObject) obj;
JSONObject jsonObjectDevice = (JSONObject)jsonObject;
JSONObject deviceAttributes = (JSONObject) jsonObject.get("myDevicesInfo");

Map json = (Map)parser.parse(jsonObject.toJSONString(), containerFactory);
System.out.println(json.values());
Iterator iter = json.entrySet().iterator();
System.out.println("==iterate result==");
while(iter.hasNext()){
Map.Entry entry = (Map.Entry)iter.next();
//System.out.println(entry.getKey() + "=>" + entry.getValue());
System.out.println(entry.getValue());
}
<小时/>

那么转换使用 ContainerFactory 并实例化包含这些值的对象的正确方法是什么?

<小时/>

最佳答案

问题是 myDevicesInfo 是一个 json 对象数组,而不是一个 json 对象。所以下面这行:

JSONObject deviceAttributes = (JSONObject) jsonObject.get("myDevicesInfo");

需要更改为

JSONArray deviceAttributes = (JSONArray) jsonObject.get("myDevicesInfo");

关于java - json-simple ,从文件中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9252029/

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