Cet objet json peut être très très gros parfois, je voudrais l'analyser avec GSON mais je ne comprends pas vraiment comment le format de mes objets java devrait être pour les analyser. Ce qui m'aiderait vraiment, ce serait vraiment des exemples très contextuels, étant donné cet objet, comment formerais-je mes objets modèles java pour contenir les données dans une méthode gson.fromJSON? Mes objets actuels se remplissent de « null »parse/sérialiser un objet json complexe avec GSON
J'explique la simplicité de l'objet au fond
{
response: {
user_is_following: 0,
name: "Tennesee",
submitted_requests: 429,
completed_requests: 34,
request_types: {
c_id: 1064,
request_types: [
{
objectKey: {
id: 15699,
name: "Complaint",
has_custom_fields: 0,
disable_title: 0,
disable_description: 0,
force_private: 0,
image: null
}
},
{
objectKey: {
id: 15700,
name: "Compliment",
has_custom_fields: 0,
category_id: 605,
disable_title: 0,
disable_description: 0,
force_private: 0,
image: null
}
},
{
objectKey: {
id: 17574,
name: "Custom Fields, all of them",
has_custom_fields: 1,
disable_title: 0,
disable_description: 0,
force_private: 0,
image: null,
custom_fields: [
{
custom_field: {
id: "1663",
name: "I'm a text input",
description: "I'm a text input description",
type: "text",
required: 1,
is_public: 1,
options: [
]
}
},
{
custom_field: {
id: "1664",
name: "I'm a text input display only",
description: "I'm a text input display only description",
type: "display",
required: 0,
is_public: 0,
options: [
]
}
},
{
custom_field: {
id: "1665",
name: "I'm a checkbox",
description: "I'm a checkbox description",
type: "checkbox",
required: 0,
is_public: 1,
options: [
]
}
},
{
custom_field: {
id: "1666",
name: "I'm a single select",
description: "I'm a single select description",
type: "singleselect",
required: 1,
is_public: 0,
options: [
{
option: {
id: "3751",
name: "A 123 [email protected]@#",
description: "A 123 [email protected]@# description"
}
},
{
option: {
id: "3752",
name: "B ",
description: "B description"
}
},
{
option: {
id: "3753",
name: "C",
description: "C description"
}
},
{
option: {
id: "3754",
name: " D",
description: "D description"
}
}
]
}
},
}
],
s_types: [
],
categories: [
{
category: {
id: 618,
client: 1064,
name: "Abc",
gov_creator: 1841,
description: "",
parent: 607,
date_created: 1368137256,
image: null
}
},
{
category: {
id: 602,
client: 1064,
name: "Animal Control",
gov_creator: 2275,
description: "",
parent: null,
date_created: 1367878768,
image: null
}
},
}
],
assets: [
],
benchmark: 0.36078095436096
},
status: {
type: "success",
message: "Success",
code: 200,
code_message: "Ok"
}
}
}
La vraie viande est la clé request_types
, le second, qui est un JSONArray. Chaque index contient un objet, chaque objet peut contenir une clé Custom Fields
qui est également un tableau json, qui dans certains cas peut contenir un tableau json options
.
J'ai des modèles pour tous ceux-ci, pour un paradigme d'analyse différent, mais pas pour GSON. Je vais devoir utiliser GSON maintenant en raison de limitations de mémoire
intéressant, et finalement comment pourrais-je lire ceci dans GSON avec un flux d'entrée? Je vais soit lire ceci à partir d'un fichier ou d'une requête http, les deux retourneront avec un flux d'entrée. – CQM
Voilà comment vous structurer votre haricot. Lorsque vous téléchargez le fichier json, vous appelez 'A myObj = gson.fromJson (lecteur, A.class);' tout devrait être couvert dans les [exemples GSON] (http://www.javacreed.com/simple-gson- Exemple/). – Ali
super merci! et IIRC je peux utiliser mes objets existants mais GSON ignorera mes ArrayLists et d'autres variables privées si elles ne correspondent pas aux clés dans le dossier de json correct? – CQM