0
我正在使用HttpBuilder調用REST服務。我需要將JSON響應轉換爲POGO。Grails:將int轉換爲JSON解組中的枚舉
這裏簡化REST調用:
def http = new HTTPBuilder('http://www.example.com/api')
http.request(Method.POST, ContentType.JSON) {
/* ... */
response.success { resp, json ->
MyPogo pogo = (MyPogo) json
}
}
它通常工作。
但現在我哈瓦這樣的JSON:
{ persons: [{ name:"Jhon", gender:0 }, { name:"Mary", gender:1 }] }
而且MyPogo有Gendern枚舉,像這樣:
class MyPogo implements Serializable {
String name
Gender gender
}
enum Gender {
MALE(0),
FEMALE(1)
private final int key
Gender(int key) { this.key = key }
}
使用這個POGO,HttpBuilder拋出一個GrailsCastException(無法施展整型性別)。
我知道如何一個int轉換爲枚舉以及如何註冊自定義JSON編組,但我怎麼能註冊自定義解組只對性別枚舉?
編輯:枚舉構造類型定義。
對不起:我寫的不好我的例子。我真正的代碼已經像你建議:( – 2014-09-26 10:06:46