2014-09-09 8 views
8

Próbuję modyfikować zawartość JSON, a następnie wydrukować go, aby zobaczyć, czy to się zmieniło z tego kodu, ale coraz błądmodyfikując json z jsonbuilder w Groovy

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

błąd:

no such property: device 

json wygląda tak:

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

Czy ktoś może pomóc w zrozumieniu, co robię źle i jak mogę to poprawić.

Odpowiedz

8

Trzeba przeanalizować zawartość przychodzące The zmodyfikować go 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 dla 'toPrettyString()' :) –

+0

Brakujące klamrę zamykającą dla "urządzenie" pola ... – mmigdol

+0

Dzięki! Cokolwiek to oznacza :) – Opal