drno-reg
@drno-reg
см не кратко

Как правильно разобрать JSON из файла (библиотека org.json.simple.*)?

Здравствуйте.

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

{  
  "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.*

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?
  • Вопрос задан
  • 417 просмотров
Решения вопроса 1
drno-reg
@drno-reg Автор вопроса
см не кратко
работающий вариант

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);
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽