json 反序列化 java对象

onnwll 2015-08-25 09:20:16
示例json对象
{"code":"0","message":"success","data":{"accessToken":"7df8ccf19d5d00"}}

javaBean

public class ResponseBody {

private String code;

private String message;

private String data;

public String getCode() {
return code;
}

public void setCode(String code) {
this.code = code;
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

public String getData() {
return data;
}

public void setData(String data) {
this.data = data;
}
}


在反序列化为java对象的时候,会把data也当做jsonObject,也转换成对象,如何把data的值只作为一个字符给ResponseBody 的data?
...全文
222 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
onnwll 2015-08-26
  • 打赏
  • 举报
回复
自己已经搞定。 package bean; import java.io.IOException; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; public class StringDeserializer extends JsonDeserializer<String> { @Override public String deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException { // 因为data 的value是jsonobject,使用JsonParser .getValueAsString()返回为空 String data = p.readValueAsTree().toString(); return data; } } package bean; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; public class ResponseBody { private String code; private String message; @JsonDeserialize(using = StringDeserializer.class) private String data; public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public String getData() { return data; } public void setData(String data) { this.data = data; } }
老李家的小二 2015-08-26
  • 打赏
  • 举报
回复
找个第三方的jar
  • 打赏
  • 举报
回复
感觉不会有太大的问题啊,就算返回对象了,你还是能获取data的数据,再转成string就行了
suciver 2015-08-26
  • 打赏
  • 举报
回复
我不知道你用的json工具是什么,但是任何的json工具都会提供属性值转换的api的,在反序列化的时候可以设置
雨海- 2015-08-25
  • 打赏
  • 举报
回复
重新定义一个中间类比较好,中间类 再提供返回你的ResponseBody

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧