Разбор данных JSon с использованием Java (Google-GSON) - PullRequest
3 голосов
/ 27 ноября 2011

Пытаюсь научиться использовать JSON и анализировать данные json. Я использую google-gson API для анализа моих данных json.

Я получаю данные JSON в следующем формате

{"guid":{"uri":"http://social.yahooapis.com/v1/me/guid","value":"123456789"}}

и вот мой код синтаксического анализа с использованием google-gson

Gson gson=new Gson();
MyGuid myGuid=new MyGuid();
myGuid=gson.fromJson(response.getBody(), MyGuid.class);

public class MyGuid {

public MyGuid() {

}

private String value;

public String getValue() {
    return value;
}

public void setValue(String value) {
    this.value = value;
}

}

но я получаю значение guid как ноль. Я знаю, что делаю неправильно, но то, что я новичок в формате JSON, делает меня более запутанным.

Любая помощь в этом отношении будет полезна.

1 Ответ

4 голосов
/ 27 ноября 2011

Ваши структуры данных должны отражать данные, которые вы пытаетесь десериализовать.

Например, вы можете использовать что-то такого вида:

public class Data {
  private Map<String, String> guid;

  public Map<String, String> getGuid() {
    return guid;
  }

  public void setGuid(Map<String, String> guid) {
    this.guid = guid;
  }

  public static void main(String[] args) {
    String json =
        "{\"guid\":{" + "\"uri\":\"http://social.yahooapis.com/v1/me/guid\","
            + "\"value\":\"123456789\"}}";
    Data data = new Gson().fromJson(json, Data.class);
    System.out.println(data.getGuid()
        .get("uri"));
  }
}

Свойство guid JSON сопоставлено со свойством guid типа Data. Свойства этого объекта помещаются в Map в виде строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...