我有一个 Json 对象,我想在 POJO 中进行转换,问题是他的属性 1 是一个值 c,它将具有我事先不知道的不同值。假设我对 "$key"
一无所知,或者可能是世界各地城市的名称
{
"data": [{
"id": 1,
"name": "theName",
"symbol": "theSymbol",
"last_updated": "2018-06-02T22:51:28.209Z",
"quote": {
"$key": {
"price": 9283.92,
},
"$key": {
"price": 1,
}
}
}],
"status": {
"timestamp": "2018-06-02T22:51:28.209Z",
"error_code": 0,
"error_message": "",
"elapsed": 10,
"credit_count": 1
}
}
最佳答案
由于“$key”未知,我的建议是转换 quote
至Map<String, Map<String, Integer>>
,这样“$key”的值就可以忽略了!这是我的代码:
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.List;
import java.util.Map;
public class XmlParser {
static class Entity {
@JsonProperty("id")
String id;
@JsonProperty("name")
String name;
@JsonProperty("symbol")
String symbol;
@JsonProperty("last_updated")
String lastUpdated;
@JsonProperty("quote")
Map<String, Map<String, Integer>> quote;
}
static class Data {
@JsonProperty("data")
List<Entity> data;
}
public static void main(String[] args) throws Exception {
final String testJson = "{\"data\":[{\"id\":1,\"name\":\"theName\",\"symbol\":\"theSymbol\",\"last_updated\":\"2018-06-02T22:51:28.209Z\",\"quote\":{\"a\":{\"price\":9283.92},\"b\":{\"price\":1}}}]}";
ObjectMapper mapper = new ObjectMapper();
Data data = mapper.readValue(testJson, Data.class);
System.out.println(mapper.writeValueAsString(data));
}
}
关于java - 来自 JSON 或 JSON-Schema 的普通旧 Java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54073184/