powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как правильно разобрать JSON (org.json.simple.*)?
10 сообщений из 10, страница 1 из 1
Как правильно разобрать JSON (org.json.simple.*)?
    #39315245
drno
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Из файла загружается такого вида JSON

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
{  
  "from_excel":[  
    {  
      "solution":"Fisrt",
      "num":"1"
    },
    {  
      "solution":"Second",
      "num":"2"
    },
    {  
      "solution":"third",
      "num":"3"
    },
    {  
      "solution":"fourth",
      "num":"4"
    },
    {  
      "solution":"fifth",
      "num":"5"
    }
  ]
}



Пытаюсь на Java разобрать этот JSON таким образом, используя библиотеку org.json.simple.*

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Object obj = parser.parse(new FileReader("E:\\json.txt"));

        JSONObject jsonObject = (JSONObject) obj;

        out.println(jsonObject.get("from_excel"));

        JSONObject obj_new = (JSONObject) jsonObject.get("from_excel");

        JSONArray solution = (JSONArray) obj_new.get("solution");

        Iterator iterator = solution.iterator();
        while (iterator.hasNext()) {
            out.println(iterator.next());
        }



но где-то допускаю ошибку....

Как правильно разобрать этот JSON?
...
Рейтинг: 0 / 0
Как правильно разобрать JSON (org.json.simple.*)?
    #39315249
drno
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На вот этой строке
Код: java
1.
JSONObject obj_new = (JSONObject) jsonObject.get("from_excel");



возникает ошибка

java.lang.ClassCastException: org.json.simple.JSONArray cannot be cast to org.json.simple.JSONObject
...
Рейтинг: 0 / 0
Как правильно разобрать JSON (org.json.simple.*)?
    #39315261
drno
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
решено так,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
JSONParser parser = new JSONParser();
JSONObject obj;
try {

    obj = (JSONObject) parser.parse(new FileReader("E:\\json.txt"));

    out.println("<br>"+obj);

    JSONObject jsonObject = (JSONObject) obj;

    JSONArray from_excel = (JSONArray)jsonObject.get("from_excel");
    // вариант построчного вывода 1
    for(Object o: from_excel){
        out.println("<br>"+o);
    }
    // вариант построчного вывода 2
    Iterator iterator = from_excel.iterator();
    while (iterator.hasNext()) {
        out.println("<br>"+iterator.next());
    }
    // вариант поименного вывода 3
    for (int i = 0; i < from_excel.size(); i++) {

        JSONObject jsonObjectRow = (JSONObject) from_excel.get(i);
        String num = (String) jsonObjectRow.get("num");
        String solution = (String) jsonObjectRow.get("solution");
        out.println("<br>num="+num+"; solution="+solution);
    }
} catch (Exception e) {
    out.println("Ошибка: "+e);
}
...
Рейтинг: 0 / 0
Как правильно разобрать JSON (org.json.simple.*)?
    #39315266
natanabrahamjr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drno,

чот как то мутно. gson загуглите :) создайте объект в котором есть поле аррайлиста объектов с двумя полями (что у вас в джейсоне собссно и есть) и получайте удовольствие кодом в 2 строчки. (не считая новых объектов конечно же )
...
Рейтинг: 0 / 0
Как правильно разобрать JSON (org.json.simple.*)?
    #39315860
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drnoЗдравствуйте.

Из файла загружается такого вида JSON

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
{  
  "from_excel":[  
    {  
      "solution":"Fisrt",
      "num":"1"
    },
    {  
      "solution":"Second",
      "num":"2"
    },
    {  
      "solution":"third",
      "num":"3"
    },
    {  
      "solution":"fourth",
      "num":"4"
    },
    {  
      "solution":"fifth",
      "num":"5"
    }
  ]
}



Пытаюсь на Java разобрать этот JSON таким образом, используя библиотеку org.json.simple.*

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Object obj = parser.parse(new FileReader("E:\\json.txt"));

        JSONObject jsonObject = (JSONObject) obj;

        out.println(jsonObject.get("from_excel"));

        JSONObject obj_new = (JSONObject) jsonObject.get("from_excel");

        JSONArray solution = (JSONArray) obj_new.get("solution");

        Iterator iterator = solution.iterator();
        while (iterator.hasNext()) {
            out.println(iterator.next());
        }



но где-то допускаю ошибку....

Как правильно разобрать этот JSON?

Получилось разобрать код с библиотекой underscore-lodash :
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
import com.github.underscore.lodash.$;
import com.github.underscore.Function1;
import java.util.*;

        String json =
"{"
+ "  \"from_excel\":["
+ "    {"
+ "      \"solution\":\"Fisrt\","
+ "      \"num\":\"1\""
+ "    },"
+ "    {"
+ "      \"solution\":\"Second\","
+ "      \"num\":\"2\""
+ "    },"
+ "    {"
+ "      \"solution\":\"third\","
+ "      \"num\":\"3\""
+ "    },"
+ "    {"
+ "      \"solution\":\"fourth\","
+ "      \"num\":\"4\""
+ "    },"
+ "    {"
+ "      \"solution\":\"fifth\","
+ "      \"num\":\"5\""
+ "    }"
+ "  ]"
+ "}";
        List<Map<String, Object>> fromExcelData = (List<Map<String, Object>>) $.get(
            (Map<String, Object>) $.fromJson(json), "from_excel");
        assertEquals("[{solution=Fisrt, num=1}, {solution=Second, num=2}, {solution=third, num=3}, "
            + "{solution=fourth, num=4}, {solution=fifth, num=5}]", fromExcelData.toString());
        List<String> solutions = $.map(fromExcelData, new Function1<Map<String, Object>, String>() {
            public String apply(Map<String, Object> item) {
                return (String) item.get("solution");
            }
        });
        assertEquals("[Fisrt, Second, third, fourth, fifth]", solutions.toString());



С уважением, Валентин
...
Рейтинг: 0 / 0
Как правильно разобрать JSON (org.json.simple.*)?
    #39315900
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drnoНа вот этой строке
Код: java
1.
JSONObject obj_new = (JSONObject) jsonObject.get("from_excel");



возникает ошибка

java.lang.ClassCastException: org.json.simple.JSONArray cannot be cast to org.json.simple.JSONObject

Если посмотреть что такое JSON, например на http://www.json.org/ , то можно увидеть, что там всего-то две основных сущности: массивы и объекты. И они считаются настолько разными сущностями, что их нельзя приводить один к другому. Что, собственно, в библиотеке и реализовано (ни разу ей не пользовался, честно говоря).

В примере "from_excel" -- массив, а Вы его к объекту привести пытаетесь. Вот и облом. Все честно.
...
Рейтинг: 0 / 0
Как правильно разобрать JSON (org.json.simple.*)?
    #39318967
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Яве JSON как-то спецово разбирать надо?? O_o
...
Рейтинг: 0 / 0
Как правильно разобрать JSON (org.json.simple.*)?
    #39319093
natanabrahamjr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Monochromatique,

если очень хочется изобрести велисапед - то конечно да.
...
Рейтинг: 0 / 0
Как правильно разобрать JSON (org.json.simple.*)?
    #39319269
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хе-хе, зацените разбор ЖСОНа на КоффеСкрипте (который кстати слабей чем например Руби / Еликсир).

Код: javascript
1.
console.log(solution, num) for {solution, num} in json.from_excel
...
Рейтинг: 0 / 0
Как правильно разобрать JSON (org.json.simple.*)?
    #39319304
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
privateХе-хе, зацените разбор ЖСОНа на КоффеСкрипте (который кстати слабей чем например Руби / Еликсир).

Заценил. Вам захотелось поделиться скромными компьютерными знаниями, хоть они и не имеют никакого отношения к обсуждаемой теме.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как правильно разобрать JSON (org.json.simple.*)?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]