Sortie JSON avec Groovy
J'ai fait des expériences avec le groovy Jsonbuilder comme vous pouvez le voir ci-dessous essayé de regarder les différentes façons de construire des objets JSON et les tableaux. Après les choses ont commencé à faire sens, j'ai essayé de l'expansion à ce qui est indiqué ci-dessous. La question que je me pose est, pourquoi ne "contenu" afficher dans le json jolie sortie de chaîne? En fait, j'ai un autre objet json affichage this.class de l'information dans la chaîne json sorties.
Des idées? Je suis nouveau à cela, il pourrait certainement être une évidence.
def tt = ["test", "test1"]
def jjj = "jason"
def js3 = new groovy.json.JsonBuilder()
def js2 = new groovy.json.JsonBuilder(tt);
js3 hello: "$jjj", "$jjj": tt
def js4 = new groovy.json.JsonBuilder()
def result = js4([sdn: js3, openflow: js2, type: 3])
println js4.toPrettyString();
sorties:
{
"sdn": {
"content": {
"hello": "jason",
"jason": [
"test",
"test1"
]
}
},
"openflow": {
"content": [
"test",
"test1"
]
},
"type": 3
}
OriginalL'auteur jedelman | 2013-09-26
Vous devez vous connecter pour publier un commentaire.
Le problème peut être reformulé comme...
pourquoi est-ce que:
d'impression:
et ce:
imprime ce (?) :
La réponse courte est que JsonBuilder a un membre nommé
content
, qui représente la charge utile. Quand on JsonBuilder absorbe l'autre, nous voulons remplacer la charge utile, et pas de nid. Cette ligne est la façon de remplacer la charge utile:def js4 = new JsonBuilder(js3.le contenu)
En fin de compte, cela provient du fait que
JsonBuilder.toString()
(code ici) appelsJsonOutput.toJson(object)
(code ici).Un exercice pour le lecteur, c'est expérimenter avec:
Excellente réponse, aidé d'une tonne, merci
OriginalL'auteur Michael Easter