java jsonsimple,从文件中读取
我试图遍历文件系统中的一个文件,其中包含许多设备的配置信息
该文件的格式如下:
{
"myDevicesInfo":
[
{
"DeviceType":"foo",
"DeviceName":"foo1",
"IPAddress":"192.168.1.1",
"UserName":"admin",
"Password":"pw"
}
]
}
在尝试获取内部键值对时,我遇到以下错误:
线程“main”java中出现异常。lang.ClassCastException:org。json。易于理解的JSONArray不能被强制转换为组织。json。易于理解的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());
}
那么,获得convert use ContainerFactory并实例化包含这些值的对象的正确方法是什么呢
# 1 楼答案
试试这个:
# 2 楼答案
问题是
myDevicesInfo
是json对象的数组,而不是json对象。所以下面这句话:需要换成