2014-09-09 7 views
8

Sto cercando di modificare il contenuto di JSON e quindi stamparlo per vedere se è cambiato con questo codice ma ottenere erroremodifica JSON con jsonbuilder in Groovy

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

errore:

no such property: device 

JSON assomiglia a questo:

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

qualcuno può aiutare a capire cosa sto facendo di sbagliato e come posso correggerlo.

risposta

8

È necessario analizzare il contenuto in entrata, la modificarlo con 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 per 'toPrettyString()' :) –

+0

Manca una parentesi graffa di chiusura per il campo "dispositivo" ... – mmigdol

+0

Grazie! Qualunque cosa significhi :) – Opal

Problemi correlati