我得从API一个JSON如下:
"hotel_data": {
"name": "Hotel Name",
"checkin_checkout_times": {
"checkin_from": "14:00",
"checkin_to": "00:00",
"checkout_from": "",
"checkout_to": "12:00"
},
"default_language": "en",
"country": "us",
"currency": "USD",
"city": "Miami"
}
我使用的是杰克逊库反序列化JSON这对Java对象。我不希望创建一类特殊的checkin_checkout_times
对象。我只想把它作为一个纯文本。像这样的"checkin_from": "14:00", "checkin_to": "00:00", "checkout_from": "", "checkout_to": "12:00"
。
在我的POJO为hotel_data
这checkin_checkout_times
应该是作为一个字符串,即:
@JsonProperty("checkin_checkout_times")
private String checkinCheckoutTimes
这是可能得到的JSON的这一部分为纯文本?
编辑:错误,那是我得到com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of java.lang.String out of START_OBJECT token at [Source: (String)...
利用JsonNode
。
只是让下面setter
的字段checkinCheckoutTimes
中的POJO的hotel_data
,它应该为你工作。
public void setCheckinCheckoutTimes(JsonNode node) {
this.checkinCheckoutTimes = node.toString();
}
String str = "{ \"id\": 1, \"data\": { \"a\": 1 } }";
try {
System.out.println(new ObjectMapper().readValue(str,Employee.class));
} catch (IOException e) {
e.printStackTrace();
}
凡Employee
如下:
class Employee
{
private int id;
private String data;
public Employee() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getData() {
return data;
}
public void setData(JsonNode node) {
this.data = node.toString();
}
@Override
public String toString() {
return "Employee{" +
"id=" + id +
", data='" + data + '\'' +
'}';
}
}
给出了下面的输出:
Employee{id=1, data='{"a":1}'}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句