我有像
JSON-RPC客户端,我无法反序列化
将json字符串传入我的java对象.
传入的json格式为:
将json字符串传入我的java对象.
传入的json格式为:
{"value":"xxxx","type":"xxxx"}
我想要反序列化的对象:
@JsonAutoDetect @JsonDeserialize() public class ReturnValue { private Object value; private String type; @JsonCreator public ReturnValue(@JsonProperty("value") String val,@JsonProperty("type") String type) { value = val; this.type = type; } ...getters,setters...
这似乎工作正常,如果值是String,但如果它是数组类型,它会抛出
JsonMapping异常 – 无法从START_ARRAY标记中反序列化java.lang.String的实例
像这样的json:
{\"value\":[8,10],\"type\":\"[int]\"}
代码是:
int[] arr = (int[])getReturnValue(jsonString).getValue();
其中getReturnValue并不特别:
ObjectMapper om = new ObjectMapper(); ReturnValue rv = null; rv = om.readValue(json,ReturnValue.class); return rv;
另一个问题是我希望type属性是Class类型,但这会抛出
另一个映射异常.杰克逊有没有办法做到这一点,或者我必须自己从字符串转换为适当的类.谢谢你的任何建议.