2016-08-22 3 views
0

Ich wollte meine JSON-Antwort Werte zu einem Array hinzufügen. Mein groovy Skript,Groovy: Warum der Knoten Null zurückgibt

import groovy.json.* 
def ResponseMessage = '''{ 
"Unit": { 
    "Screen": [{ 
     "Profile ": { 
      "ID ": 12, 
      "Rate ": 0 
     }, 
     "Rate ": 600, 
     "Primary ": 1, 
     "Audio ": [{ 
      "Id ": 1, 
      "Name ": null 
     }], 
     "Pre ": 5, 
     "Post ": 1 
    }] 
} 
} ''' 
def json = new JsonSlurper().parseText(ResponseMessage) 

def Screen = json.Unit.Screen 
log.info Screen 
def array= [] 
Screen.each { s -> 
array.addAll(s.Rate,s.Primary,s.Pre) 
log.info "array : " + array 
} 

Array zurückgibt, INFO: Array: [null, null, null]

+1

Sie haben Räume in Ihrem Json? zB: '" Profil "' <- am Ende –

+0

ja :(nach dem Entfernen von Leerzeichen manuell, habe ich diesen Fehler ERROR: java.lang.IndexOutOfBoundsException: Index: 600, Größe: 0 – Gkm

Antwort

3

Anstelle des "ein Array erstellen, rufen addAll in einer Schleife" Muster, versuchen dies:

def array = Screen.collectMany { s -> 
    [s.Rate,s.Primary,s.Pre] 
} 

(natürlich, wenn Sie die Leerzeichen aus den JSON Schlüssel entfernt haben)

+0

Vielen Dank, es funktioniert. Ausgezeichnet :) – Gkm

+0

warum gibt es mir einen Fehler für die Null-Tasten @tim_yates :( – Gkm

+0

@Geeta können Sie ein Beispiel geben? Ich bin mir nicht sicher, was du meinst ... Könnte eine andere Frage sein? –

Verwandte Themen