1
我目前正在編寫一個使用Restlet包及其Jackson擴展來使用REST式服務的Java客戶端。 我想查詢一個用戶的服務和反序列化到User
POJO看起來如下回應:Jackson:序列化/反序列化字符串到單個項目的數組
@JsonIgnoreProperties(ignoreUnknown=true)
public class User {
private Integer uid;
private String name;
private String mail;
private String field_nickname;
// omitted for brevity: getters/setters, toString
}
從服務示例響應如下所示:
{
"uid": "5",
"name": "John Doe",
"mail": "[email protected]",
"field_nickname": {
"und": [{
"value": "jdoe",
"format": null,
"safe_value": "jdoe"
}]
}
}
這裏是Java客戶端代碼:在uid
的
import org.restlet.resource.ClientResource;
public class TestClient {
public static void main(String[] args) throws Exception {
// Getting a User
ClientResource cr = new ClientResource("http://localhost/rest/user/7.json")
User user = cr.get(User.class);
System.out.println(user);
// Creating a User
cr = new ClientResource("http://localhost/rest/user.json");
User user = new User();
user.setName("Jane Doe");
user.setFieldNick("jdoe2");
user.setMail("[email protected]");
cr.post(user);
}
序列化/反序列化,name
和mail
字段非常簡單,並且沒有問題。 我的問題是與field_nickname
:該字段始終包含數組und
與單個條目總是看起來相同。
我該如何告訴Jackson將此字段反序列化爲String
,其值爲field_nickname[und][0][value]
並將該屬性序列化爲這樣的數組?