我有一個服務,我建立\使用返回的數據在下面的格式。HTTPBuilder,返回JSON格式不正確
def responseData = [
'results': results,
'status': results ? "OK" : "Nothing present"
]
render(responseData as JSON)
輸出看起來像這樣,我已經根據提琴手
{ 「結果」 驗證輸出:[{ 「類」:「com.companyName.srm.ods.territory.Apo 」, 「ID」:2, 「apoId」: 「5T9B0」}], 「狀態」: 「OK」}
這是一個簡單的POST調用與來自搜索參數的身體。
使用HTTPBuilder我得到不同的結果
http.request(groovyx.net.http.Method.POST, groovyx.net.http.ContentType.URLENC) {req ->
uri.path = restUrl
body = requestData
response.success = {resp, json ->
println resp.statusLine.statusCode
println resp.statusLine
def slurper = new JsonSlurper()
String s = json.toString()
println s
returnJson = slurper.parseText(s)
}
response."422" = {resp, json ->
println ${resp.statusLine}
}
response.failure = {resp ->
println ${resp.statusLine}
}
}
[ 「成果」:[{ 「類」: 「com.companyName.srm.ods.territory.Apo」, 「ID」:2 「apoId」:「5T9B0」}],「狀態」:「OK」:空]
這變成了映射對,其中鍵是JSON和值是空值,這是令人困惑的,以HTTPBuilder爲什麼這樣做。
爲了解析到JSON,我有以下附加編碼 S = s.replace( ':空]', '') S = s.replace( '[', '')
這對於這種類型的實現似乎過於複雜。 我已經轉入調試,沒有什麼有趣的是來自於此。 任何想法
剛剛意識到問題的日期:)無論如何,我希望這將有助於其他人。 – olyv