2014-09-09 11 views
8

Tôi cố gắng để sửa đổi nội dung của json và sau đó in nó để xem nếu nó đã thay đổi với mã này, nhưng nhận được lỗisửa đổi json với jsonbuilder trong Groovy

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

lỗi:

no such property: device 

json trông giống như sau:

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

ai đó có thể giúp hiểu tôi đang làm gì sai và tôi có thể sửa nó như thế nào.

Trả lời

8

Bạn cần phải phân tích nội dung đến, các sửa đổi nó với 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 cho 'toPrettyString()' :) –

+0

Thiếu một cú đúp đóng cho trường "thiết bị" ... – mmigdol

+0

Cảm ơn! Điều đó có nghĩa là gì :) – Opal

Các vấn đề liên quan