1
火力地堡數據:擷取JSON作爲字符串不使用Java中的其餘工作
com.fasterxml.jackson.databind.JsonMappingException: Can not instantiate value of type [simple type, class com.web.dtos.SolutionDto] from String value ('{"testId":"1719126"}'); no single-String constructor/factory method
at [Source: [email protected]; line: 1, column: 1]
at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:148) ~[jackson-databind-2.4.3.jar:2.4.3]
at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:757) ~[jackson-databind-2.4.3.jar:2.4.3]
at com.fasterxml.jackson.databind.deser.ValueInstantiator._createFromStringFallbacks(ValueInstantiator.java:277) ~[jackson-databind-2.4.3.jar:2.4.3]
at com.fasterxml.jackson.databind.deser.std.StdValueInstantiator.createFromString(StdValueInstantiator.java:289) ~[jackson-databind-2.4.3.jar:2.4.3]
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromString(BeanDeserializerBase.java:1133) ~[jackson-databind-2.4.3.jar:2.4.3]
at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:135) ~[jackson-databind-2.4.3.jar:2.4.3]
at com.fasterxml.jackson.module.afterburner.deser.SuperSonicBeanDeserializer.deserialize(SuperSonicBeanDeserializer.java:123) ~[jackson-module-afterburner-2.4.3.jar:2.4.3]
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3051) ~[jackson-databind-2.4.3.jar:2.4.3]
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2192) ~[jackson-databind-2.4.3.jar:2.4.3]
爲什麼它是不能解析字符串到對象?
編輯: SolutionDto.java
@JsonInclude(Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown=true)
public class SolutionDto {
private Long testId;
public SolutionDto(){}
public SolutionDto(Long testId) {
this.testId = testId;
}
public void setTestId(Long testId) {
this.testId = testId;
}
public Long getTestId() {
return testId;
}
}
的JSON
出口從火力:
{
"1719126" : {
"1719130" : {
"1719121" : "{\"testId\":\"1719126\"}"
}
}
}
以下代碼工作細跟上述solutionDto,但是當相同的是使用Apache取從firebase它不起作用
String s = "{\"testId\":\"1719126\"}";
objectMapper.readValue(s, SolutionDto.class);
除了Jordi的回答,沒有更多的我們可以說沒有看到'SolutionDto'。另外請注意,您在問題中包含了JSON樹的圖片。請用實際的JSON替換爲文本,您可以通過點擊Firebase數據庫控制檯中的導出按鈕輕鬆獲取。將JSON作爲文本可以搜索,使我們可以輕鬆使用它來測試您的實際數據,在我們的答案中使用它,並且通常只是一件好事。 –
@FrankvanPuffelen增加了缺失的細節 – Bhuvan