У меня есть вложенный объект JSON, например:
{
"references": [
"CONTRACT",
"DURATION",
"EDUCATIONLEVEL",
"EXPERIENCELEVEL",
"LANGUAGELEVEL",
"CIVILITY",
"AVAILABILITY"
],
"unavailablenetworks": [
{
"content": "Service unavailable",
"id": "100"
},
{
"content": "Service unavailable",
"id": "200"
}
],
"urls": {
"apiurl": "https://xxxxxxxxxxx",
"base": "https://yyyyyyyyyyyyyy",
"video": "https://zzzzzzzzzzzzz"
}
}
и следующие классы Java:
public class Version implements Serializable {
@SerializedName("references")
private List<String> references;
@SerializedName("unavailablenetworks")
private List<UnavailableNetwork> unavailableNetworks;
@SerializedName("urls")
private BKUrls urls;
}
public class BKUrls implements Serializable {
@SerializedName("apiurl")
private String api;
@SerializedName("base")
private String base;
@SerializedName("video")
private String video;
@SerializedName("edition")
private String edition;
@SerializedName("offer")
private String offer;
@SerializedName("search")
private String search;
}
public class UnavailableNetwork implements Serializable {
@SerializedName("content")
private String content;
@SerializedName("id")
private String id;
}
Методы Getter и Setter здесь опущены для упрощения чтение.
Я использую GSON для анализа JSON:
Gson g = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
Version version = g.fromJson(json.toString(), Version.class);
Этот код используется в приложении Android, которое я разрабатываю.
Если Я устанавливаю и запускаю приложение на смартфоне Android в режиме отладки с помощью Android Studio, Gson
правильно анализирует объект Json.
Но если я попытаюсь создать apk
, а затем , установите этот apk на тот же смартфон, Gson
не анализирует JSON полностью. Результат такой:
{
"references": [
"CONTRACT",
"DURATION",
"EDUCATIONLEVEL",
"EXPERIENCELEVEL",
"LANGUAGELEVEL",
"CIVILITY",
"AVAILABILITY"
],
"unavailablenetworks": [
{
"id": "100"
},
{
"id": "200"
}
],
"urls": {
}
}
«ссылки» в порядке
«недоступные сети» не заполнены, отсутствует поле «контент»
«URL-адреса» пусто
Я не понимаю, почему Gson не работает так же? Почему некоторые данные отсутствуют при использовании apk при использовании Android Studio в режиме отладки, все данные в порядке?