java 转json gson_使用GSON在字符串和字节[]之间转换JSON

我正在使用休眠将对象映射到数据库。客户端(iOS应用程序)向我发送了JSON格式的特定对象,我使用以下实用程序方法将其转换为真实的表示形式

/**

* Convert any json string to a relevant object type

* @param jsonString the string to convert

* @param classType the class to convert it too

* @return the Object created

*/

public static T getObjectFromJSONString(String jsonString, Class classType) {

if(stringEmptyOrNull(jsonString) || classType == null){

throw new IllegalArgumentException("Cannot convert null or empty json to object");

}

try(Reader reader = new StringReader(jsonString)){

Gson gson = new GsonBuilder().create();

return gson.fromJson(reader, classType);

} catch (IOException e) {

Logger.error("Unable to close the reader when getting object as string", e);

}

return null;

}

但是问题是,在我的pogo中,我将值存储为byte [],如下所示(因为这是存储在数据库中的内容-blob)

@Entity

@Table(name = "PersonalCard")

public class PersonalCard implements Card{

@Id @GeneratedValue

@Column(name = "id")

private int id;

@OneToOne

@JoinColumn(name="userid")

private int userid;

@Column(name = "homephonenumber")

protected String homeContactNumber;

@Column(name = "mobilephonenumber")

protected String mobileContactNumber;

@Column(name = "photo")

private byte[] optionalImage;

@Column(name = "address")

private String address;

当然,现在转换失败了,因为它无法在byte []和String之间进行转换。

这是更改构造函数以接受String而不是字节数组,然后在设置字节数组值的同时自己进行转换的最佳方法,还是有更好的方法做到这一点?

引发的错误如下:

com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期为BEGIN_ARRAY,但在第1行第96列的路径$

.optionalImage

谢谢

编辑 实际上,由于GSON生成对象的方式,即使我建议的方法也行不通。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值