2016-10-19 3 views
0

Ich habe eine JSON-Zeichenfolge von Google Analytics wie unten. Meine Anforderung ist, das "Seiten" -Objekt auf der Ebene des Hits-Arrays zu verschieben. Im Grunde wird "page" ähnlich wie "hits" als ein Array auf der gleichen Ebene wie "hits" sein.So verschieben Sie JSON-Objekt eine Ebene höher

{ 
    "hits":[ 
    { 
    "hitNumber":"1", 
    "time":"0", 
    "hour":"10", 
    "minute":"29", 
    "isInteraction":true, 
    "page":{ 
     "pagePath":"www.scotiabank.com/ca/en/0,,2,00.html", 
     "hostname":"www.scotiabank.com", 
     "pageTitle":"Personal Banking | Scotiabank" 
    }   
     } 
    ], 
    "fullVisitorId":"65778887038843" 
} 

Bitte helfen. Danke

+0

welche Programmiersprache? JSON kann heute fast überall auftauchen :) – dahrens

+0

:-) Sorry mein Schlechter. Es ist in Java mit GSON-Bibliothek. –

+0

verwenden selten Java, aber [basierend auf den Dokumenten] (https://github.com/google/gson/blob/master/UserGuide.md#custom-serialization-and-deserialization) scheint es, dass Sie Ihren eigenen Deserializer schreiben müssen . – dahrens

Antwort

0

Sie müssen etwas programmieren, um ein json Dokument neu zu strukturieren. Dies sieht wie ein üblicher Geschäftsfall aus, um bestimmte Elemente in einem json-Dokument in etwas anderes innerhalb desselben Dokuments zu ändern.

Es ist nicht einfach, einen Deserializer zu implementieren, um dies zu erreichen. Ich habe gerade eine Funktion implementiert, um dies in Oson library zu tun. Ignorieren Sie diese Antwort, wenn Sie nur eine Gson-Lösung wünschen.

String json = OsonConvert.changeTo(json, "hits.page", "pages"); 

Hinweis: json ist Ihr Json Dokument, „hits.page“ ist Ihre ursprüngliche Punkt-Pfad des Elements, „Seiten“ ist das neue Attribut, das Sie für die Daten dieses Elements verwendet werden soll (Wenn mehr als ein Wert gefunden wird, wird der neue Wert array)

+0

Oson könnte großartig sein, funktioniert aber nur für Java 8. – banterCZ

Verwandte Themen