2013-08-12 2 views
0

, пожалуйста, найдите мой код ниже. Когда я запускаю это, я получаю исключение org.json.simple.JSONObject cannot be cast to org.json.simple.JSONArray. пожалуйста помоги. Я пытаюсь напечатать все значения внутри JSONJson-Simple, Cast Exception

public static void main(String[] args) throws Exception {  
    URL website = new URL("http://MY_TESTING_SITE"); 
    URLConnection connection = website.openConnection(); 
    BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); 

    StringBuilder response = new StringBuilder(); 
    String inputLine; 


    while ((inputLine = in.readLine()) != null) 
     response.append(inputLine); 

    in.close(); 

    JSONParser parser = new JSONParser(); 
    Object obj = parser.parse(response.toString()); 
    JSONObject jsonObject = (JSONObject) obj; 

    System.out.println(jsonObject.get("data")); //Works fine till here and get proper output 

    JSONArray msg = (JSONArray) jsonObject.get("data"); 


    Iterator<String> iterator = msg.iterator(); 
    while (iterator.hasNext()) { 
     System.out.println(iterator.next()); 
    } 

} 

Образец Вывод в формате JSON выглядит так, как показано ниже:

{ "tsNow": 1376325485, "данных": { " 1352 ": { "for_loyal": "1", "offer_image":" http://MY_IMAGE.jpg», "статус": "1", "Brand_ID": "22", "идентификатор": "1352", «brand_image»: «http://MY_BRAND_IMAGE.png», "Название": "Win 20 Семейный отдых в США", "Описание": "Некоторые описание", "EXPIRY_DATE": 1383018300, "BRAND_NAME": "МАРКА", "store_locations": [ { " CITY_ID ": "46", "country_id": "9" } ] } }, "успех": правда }

+0

Можете ли вы поместить некоторые из JSON, которые хотите извлечь? –

+0

Что такое атрибут «данные»? – Bohemian

ответ

0

Если json возвращается, это только массив, то есть ["asdf", "asdf", "asdf2", "basdf"] , тогда в java, когда вы разбираете его с помощью json-simple, это будет объект JSONArray

Если json возвращен, это объект json {"key": "value", "keyArray": ["asdf", "asdf"]} будет разбираться с JSONObject. Если вы получите значение keyArray, оно будет анализироваться как JSONArray

0

Убедитесь, что ваш URL возвращает правильный объект JSON.

объект ответа может содержать HTML-страницу. а не объект json. В возвращаемом json отсутствует лишний объект данных.

html! = json

+0

Он возвращает действительный JSON. Я проверил то же самое, используя «http://jsonviewer.stack.hu/» –

+0

, пожалуйста, убедитесь, что ваш возвращающийся json вот так. { "данные": ["данные 1", "данные 2", "данные 3"] } – Prabhakaran

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