Java[Android][Spring]-反序列化字节数组
所以基本上我在用android应用,我有一个后端服务器。我向服务器发送一个字节数组,它将其存储在数据库中。我使用的是Spring,所以存储字节数组的实体是:Java[Android][Spring]-反序列化字节数组,java,android,Java,Android,所以基本上我在用android应用,我有一个后端服务器。我向服务器发送一个字节数组,它将其存储在数据库中。我使用的是Spring,所以存储字节数组的实体是: @Entity @Data @NoArgsConstructor @AllArgsConstructor public class ApplicationUser { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id;
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ApplicationUser {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String username;
private String password;
private String name;
private String lastName;
private int age;
@Lob
private byte[] imageBytes;
}
当服务器接收字节数组时,它接收并存储如下内容:[-1,-40,-1,…]
现在,当将其发送回时,我将其放在UserDto对象中,如下所示:
public class UserDto {
String username;
String password;
String name;
String lastName;
int age;
String location;
Long id;
byte [] imageBytes;
}
在我的android应用程序上,我希望它在调用时返回ImageBytesResponse,如下所示:
public class ImageBytesResponse {
byte[] imageBytes;
public byte[] getImageBytes() {
return imageBytes;
}
public void setImageBytes(byte[] imageBytes) {
this.imageBytes = imageBytes;
}
}
调用方法:callgetImageBytes
然而,当打电话时,当它返回到android应用程序时,我得到一个
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 110 path $.imageBytes
那么,基本上,为什么从userdt转到-->imageByResponse不起作用?
为什么它不值得适当地使用?我的实体属性是@Lob这一事实是一个问题吗 消息说JSON包含一个
字符串(即“blabla”),而不是该位置的预期数组。也许您应该检查实际收到的内容(即,打印出您试图解码的JSON)。消息说JSON包含一个字符串(即“blabla”),而不是该位置的预期数组。也许您应该检查实际收到的信息(例如,打印出您试图解码的JSON)。
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 110 path $.imageBytes