Как разобрать этот JSON в объект Java? - PullRequest
0 голосов
/ 07 ноября 2011

http://pastebin.com/rXbeKqAa

Привет всем, что я пытался разобрать вышеупомянутый JSON в java-программу и сохранить его в объекте ... (В данный момент у меня нет определенной структуры, пока я могу получить данные из объекта .)

Пытался использовать GSON, но я не могу понять, как это правильно ..

        String inputLine="";
    HttpClient httpclient= new DefaultHttpClient();
    HttpGet method = new HttpGet("http://localhost:3000/specs/215/errors.js");
    HttpResponse response =httpclient.execute(method);
    BufferedReader in = new BufferedReader(
            new InputStreamReader(
                    response.getEntity().getContent()));

    inputLine = in.readLine();
    System.out.println(inputLine);
    in.close();
    Gson gson = new Gson();
    JsonParser parser = new JsonParser();
    JsonArray array = parser.parse(inputLine).getAsJsonArray();

    for(int i=0; i < array.size(); i++) {

        Errors e = gson.fromJson(array.get(0), Errors.class);
        System.out.println(e.error.getReason());
    }

и ошибка, которую я получаю:

Exception in thread "main" java.lang.IllegalStateException: This is not a JSON Array.
    at com.google.gson.JsonElement.getAsJsonArray(JsonElement.java:99)
    at test.Getter.main(Getter.java:37)

Кто-нибудь, пожалуйста, укажите мне в правильном направлении? Спасибо.

Ответы [ 3 ]

3 голосов
/ 07 ноября 2011

Строка JSON не является строкой JSON Array. JSON String начинается и заканчивается на {, } соответственно, а JSON Array начинается и заканчивается на [, ] соответственно.

Эта строка неверна:

JsonArray array = parser.parse(inputLine).getAsJsonArray();

Скорее получите его как JsonObject.

0 голосов
/ 07 марта 2014

Я исправил проблему, которая у меня была.Ошибка новичка с сериализованными аннотациями.Почему-то я думал, что они будут ссылаться на имя класса, а не на имена полей.Но что еще более важно, мне также пришлось создать контейнерный класс корневого уровня для хранения моих классов.Это позволило проанализировать все объекты.

0 голосов
/ 07 ноября 2011

JSON Структуры реализуются как объект, запись, структура, словарь, хеш-таблица, список ключей или ассоциативный массив.

Вы можете использовать функцию eval () для достижения желаемой цели. Я думаю, что это поможет вам /

...