- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Jackson 将 JSON 数组反序列化为 Java 集合。这是由我昨晚 Can I instantiate a superclass and have a particular subclass be instantiated based on the parameters supplied 提出的这个问题的答案所激发的。
我得到的错误是(为可读性添加了换行符):
org.codehaus.jackson.map.JsonMappingException:
Unexpected token (END_OBJECT), expected FIELD_NAME: missing property 'type'
that is to contain type id (for class sempedia.model.query.QueryValue)
at [Source: java.io.StringReader@325aef; line: 1, column: 175]
(through reference chain: sempedia.model.query.QueryProperty["values"])
[
{
"id":"74562",
"uri":"http://dbpedia.org/ontology/family",
"name":"family",
"values":[
{
"id":"74563",
"uri":"http://dbpedia.org/resource/Orycteropodidae",
"name":"Orycteropodidae"
}
],
"selected":false
},
{
"id":"78564",
"uri":"http://dbpedia.org/ontology/someNumber",
"name":"someNumber",
"values":[
{
"lower":"45",
"upper":"975",
}
],
"selected":true
}
]
Collection<QueryProperty>
的
queryProperties
的一个实例
ObjectMapper mapper = new ObjectMapper();
Collection<QueryProperty> queryProperties =
queryProperties = mapper.readValue(query,
new TypeReference<Collection<QueryProperty>>(){});
public class QueryProperty {
int id;
String uri;
String name;
Set<QueryValue> values;
String selected;
}
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes({
@Type(value = ResourceQueryValue.class),
@Type(value = NumericQueryValue.class)
})
public abstract class QueryValue {
String type;
}
ResourceQueryValue
public class ResourceQueryValue extends QueryValue{
int id;
String uri;
String name;
}
NumericQueryValue
相同的 JSON 不包含此类型的对象。
public class NumericQueryValue extends QueryValue{
double lower;
double upper;
}
org.codehaus.jackson.map.JsonMappingException: Unexpected token (END_OBJECT), expected FIELD_NAME: missing property 'type' that is to contain type id (for class sempedia.model.query.QueryValue)
at [Source: java.io.StringReader@325aef; line: 1, column: 175] (through reference chain: sempedia.model.query.QueryProperty["values"])
at org.codehaus.jackson.map.JsonMappingException.from(JsonMappingException.java:163)
at org.codehaus.jackson.map.deser.StdDeserializationContext.wrongTokenException(StdDeserializationContext.java:240)
at org.codehaus.jackson.map.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromObject(AsPropertyTypeDeserializer.java:86)
at org.codehaus.jackson.map.deser.AbstractDeserializer.deserializeWithType(AbstractDeserializer.java:89)
最佳答案
正如经常发生的那样,写出一个问题可以帮助您找到解决方案。所以我需要做两件事。
首先,我需要将类型信息添加到 JSON 中——这不是我真正想做的,但我想你需要在某处提供该信息。
然后我需要将 QueryValue 上的注释编辑为:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes({
@Type(value = ResourceQueryValue.class, name = "ResourceQueryValue"),
@Type(value = NumericQueryValue.class, name= "NumericQueryValue")
})
关于json - Jackson 反序列化 ... 意外 token (END_OBJECT),,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6435062/
我有一个像这样的 JSON: {"aData": {"tournaments": {"new":[ {"token":"1-token", "prio":"6", "status":"inactive
我对elasticsearch有一个错误: "query_parsing_exception: expected [END_OBJECT] but got [FIELD_NAME], possibly
我正在尝试在一个 Abstact 类“Animal”上使用 Jackson 注释将 JSON 对象反序列化为 Java 对象: @JsonTypeInfo(use = JsonTypeInfo.Id.
我正在尝试使用 Jackson 将 JSON 数组反序列化为 Java 集合。这是由我昨晚 Can I instantiate a superclass and have a particular s
Elasticsearch 2.4.5 PHP 7.0 我有以下通过curl起作用的聚合查询,但是在转换为PHP时失败。我觉得自己缺少一些愚蠢/简单的东西,只是在寻找另一只眼睛 curl -XPOST
当我试图包含一个具有模糊的必须要求和几个应有的要求且其中一个是通配符的复合 bool(boolean) 查询时,我遇到了此错误消息。到目前为止,语法上的任何更改都没有帮助我解决此问题。 查询: {
我正在使用elasticsearch客户端使用constant_score和聚合进行一些搜索查询,但是它抛出异常: [parsing_exception] [constant_score] malfo
原始查询看起来像这样 { "query": { "bool": { "must": [ {
{ "from":0, "size":1000, "query": { "bool": { "must": [ {
以下JSON结构在执行查询时给我一个错误: {
我无法找出下面的查询出了什么问题。 GET website/_search { "query": { "bool": { "filter": [ {
我正在尝试编写使用 Jackson 来序列化/反序列化对象的代码。 这些对象本质上是多态的: @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = J
我在我的 Kibana 控制台中运行以下 GET 查询,由于某种原因,我在响应窗口中收到如下错误: //错误 [match] malformed query, expected [END_OBJECT
我正在尝试编写使用 Jackson 将对象序列化到 File 或从 File 反序列化的代码。 这些对象本质上是多态的。我的界面看起来像 @JsonIgnoreProperties(ignoreUnk
我是一名优秀的程序员,十分优秀!