2016-07-18 12 views
0

Ist es möglich, einen Namen für jedes Element einer Liste in JSON mit JACKSON?Wie Sie einen Namen für jedes Element einer Liste in Jackson hinzufügen

Zum Beispiel, ich habe folgendes JSON:

{"result": [ 
    { 
     "name": "ABC", 
     "age": "20" 
    },{ 
     "name": "DEF", 
     "age": "12" 
    } 
]} 

Aber ich brauche diese:

{"result": [ 
    person: { // << this is the name 
     "name": "ABC", 
     "age": "20" 
    }, 
    person: { 
     "name": "DEF", 
     "age": "12" 
    } 
]} 

Danke an alle!

UPDATE

Menschen Hallo!

Ich habe einen Fehler gemacht! Die richtige Form ist die folgende:

{"result": [ 
    { 
     person: { // << this is the name 
     "name": "ABC", 
     "age": "20" 
     } 
    }, 
    { 
     person: { 
     "name": "DEF", 
     "age": "12" 
     } 
    } 
]} 
+0

, die mit JSON nicht möglich ist. Entweder haben Sie ein Array oder ein Objekt. Wenn Sie ein Objekt haben, müssen Schlüssel eindeutig sein. – str

+0

Es gibt keine Namen für Listenelemente in JSON. Sie müssten das dann in ein Objekt verwandeln. aber es kann nur einen Wert pro Taste geben - also 'person' zwei mal nicht funktionieren – cfrick

Antwort

0

Im Klar Javascript, könnten Sie Array#map nutzen und ein neues Objekt mit Person Eigenschaft zurück.

var object = { result: [{ name: "ABC", age: "20" }, { name: "DEF", age: "12" }] }; 
 

 
object.result = object.result.map(function (a) { 
 
    return { person: a }; 
 
}); 
 

 
console.log(object);

+0

falls, das ist, was OP tatsächlich gefragt hat, das gleiche in groovy:' object.result.collect {[person: it]} '' – cfrick

+0

vielleicht, ich weiß nicht, groovy. –