我正在試圖遍歷文件系統中包含大量設備配置信息的文件。json-simple,從文件中讀取
文件的格式如下:
{
"myDevicesInfo":
[
{
"DeviceType":"foo",
"DeviceName":"foo1",
"IPAddress":"192.168.1.1",
"UserName":"admin",
"Password":"pw"
}
]
}
我正在試圖讓內鍵值對的時候出現以下錯誤:在線程
異常「主要的」 java .lang.ClassCastException:org.json.simple.JSONArray無法轉換爲org.json.simple.JSONObject at mav2bac.loadDevices(bac.java:98) at 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通過與實例包含這些值的對象?
與錯誤幫助了,但現在,我怎麼去鍵值對? – bentaisan 2012-02-13 00:26:00
JSONArray是Java List,因此您可以按照迭代List的相同方式對它進行迭代。 – 271828183 2012-02-13 02:30:30
這是我得到的輸出:myDevicesInfo = [{DeviceType = bac,DeviceName = bac,IPAddress = 192.168.1.1,UserName = admins,Password = pw}]。我想獲取方括號中的值。 – bentaisan 2012-02-13 17:06:16