2014-09-09 1 views
8

Ich versuche Inhalt von json zu ändern und es dann zu sehen, drucken, wenn es mit diesem Code aber immer Fehlerjson mit jsonbuilder in Groovy Modifizieren

def builder = new JsonBuilder(request) 
log.info(builder.content) 
builder.content.device.dpidsha1= 'abcd' 
log.info(builder.toPrettyString()) 

Fehler geändert hat:

no such property: device 

json sieht so aus:

{ 
    "app":{ }, 
    "at":2, 
    "badv":[ ], 
    "bcat":[ ], 
    "device":{ 
     "carrier":"310-410", 
     "connectiontype":3, 
     "devicetype":1, 
     "dnt":0, 
     "dpidmd5":"268d403db34e32c45869bb1401247af9", 
     "dpidsha1":"1234", 
. 
. 
} 

kann jemand helfen zu verstehen, was mache ich falsch und wie kann ich es korrigieren.

Antwort

8

Sie müssen eingehende Inhalte analysieren, ändern die es mit JsonBuilder

import groovy.json.JsonBuilder 
import groovy.json.JsonSlurper 

def content = """ 
{ 
    "app":{ }, 
    "at":2, 
    "badv":[ ], 
    "bcat":[ ], 
    "device":{ 
     "carrier":"310-410", 
     "connectiontype":3, 
     "devicetype":1, 
     "dnt":0, 
     "dpidmd5":"268d403db34e32c45869bb1401247af9", 
     "dpidsha1":"1234" 
    } 
}""" 

def slurped = new JsonSlurper().parseText(content) 
def builder = new JsonBuilder(slurped) 
builder.content.device.dpidsha1 = 'abcd' 
println(builder.toPrettyString()) 
+1

+1 für 'toPrettyString()' :) –

+0

eine schließende Klammer fehlt für das "Gerät" Feld ... – mmigdol

+0

Dank! Was auch immer das bedeutet :) – Opal