2016-01-29 3 views
2

Я пытаюсь разобрать файл с сыном, и я не знаю, что я делаю неправильно (конечно, я не знаю Я действительно знаю, что я делаю правильно, либо).ClassCastException: org.json.simple.JSONArray нельзя отнести к org.json.simple.JSONObject

file.json

[{ 
"arrOne":{ 
    "one":"a", 
    "two":"b", 
    "three":"c", 
    "four":"d", 
    "five":"e" 
}, 
"elemTwo":"f", 
"elemThree":"g", 
"elemFour":"h", 
"elemFive":"i", 
"arrSix":[{ 
    "six":1, 
    "seven":2, 
    "eight":"j" 
}]}] 

код:

import java.io.FileNotFoundException; 
import java.io.FileReader; 
import org.json.simple.JSONObject; 
import org.json.simple.parser.JSONParser; 
import org.json.simple.parser.ParseException; 
//........... 
JSONParser parser = new JSONParser(); 
Object obj = parser.parse(new FileReader("/path/to/file.json")); 
JSONObject json = (JSONObject) obj; 
String unit = (String) json.get("elemTwo"); 
System.out.println(unit); 

Я получаю ClassCastException ошибки: org.json.simple.JSONArray не может быть приведен к org.json.simple.JSONObject. Честно говоря, я понятия не имею, что я делаю. Любая помощь будет замечательной! Благодаря!

+1

У вас есть массив JSON в ваших данных (он завернут в '[]'). Итак, если вы разобрали его, его тип - 'JSONArray', а не' JSONObject' - именно то, что говорит исключение. –

ответ

2

Вы должны бросить ваш obj в JsonArray вместо JsonObject, потому что ваш файл JSON имеет [] в корне.

0

Когда JSonParser анализирует файл, это вернуть его в качестве JSONArray, чтобы решить ее пытаются использовать это:

JSONObject obj = (JSONObject)obj; 
    JSONObject elem = (JSONObject)obj.get("0"); 
    String unit = (String) elem.get("elemTwo"); 
    System.out.println(unit); 
0

вы получаете JSONArray не JSONObject

JSONParser parser = new JSONParser(); 
Object obj = parser.parse(new FileReader("/path/to/file.json")); 
JSONArray json = (JSONArray) obj; 

чем петля это и get jsonobject

Смежные вопросы