【发布时间】:2016-02-26 16:32:21
【问题描述】:
我有一个像这样的枚举:
public enum Type {
@JsonProperty("private")Private, group, supergroup, channel
}
json 文件本身具有私有字段,因此我需要私有(即 java 键盘)用于序列化和映射,但如果我使用 private 和所有小写字母,则会出现运行时错误。我使用@JsonProperty 作为上面的代码,但仍然无法正常工作。
你有什么解决办法吗?
这里是个例外:
com.fasterxml.jackson.databind.exc.InvalidFormatException: 不能 从字符串值构造 com.mehdi.model.Chat$Type 的实例 “私有”:值不是声明的枚举实例名称之一:[私有, [来源:/home/mehdi/Desktop/json.txt;组、超级组、频道] 行:14,列:16](通过参考链: com.mehdi.model.Update["message"]->com.mehdi.model.Message["chat"]->com.mehdi.model.Chat["type"]) 在 com.fasterxml.jackson.databind.exc.InvalidFormatException.from(InvalidFormatException.java:55) 在 com.fasterxml.jackson.databind.DeserializationContext.weirdStringException(DeserializationContext.java:742) 在 com.fasterxml.jackson.databind.deser.std.EnumDeserializer.deserialize(EnumDeserializer.java:91) 在 com.fasterxml.jackson.databind.deser.std.EnumDeserializer.deserialize(EnumDeserializer.java:20) 在 com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:525) 在 com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:99) 在 com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:242) 在 com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:118) 在 com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:525) 在 com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:99) 在 com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:242) 在 com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:118) 在 com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:525) 在 com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:99) 在 com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:242) 在 com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:118) 在 com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2993) 在 com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2052) 在 com.mehdi.ff.Test.main(Test.java:25) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:497) 在 com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
进程以退出代码 0 结束
【问题讨论】:
-
请详细说明“...但仍然无法正常工作”。它有什么作用?它不做什么?
-
@nop77svk 我已经提出了例外~