Java POJO有一个byte[]字段,但与之对应的JSON有一个string字段。如何将字符串转换为字节[]?
我的POJO具有以下结构:Java POJO有一个byte[]字段,但与之对应的JSON有一个string字段。如何将字符串转换为字节[]?,java,json,jackson,Java,Json,Jackson,我的POJO具有以下结构: class SomeName { .... // some fields private byte[] message; .... .... // some functions public byte[] getMessage() { return message; } } 我的JSON文件有一个名为“message”的字段,其中存储了一个字符串
class SomeName
{
.... // some fields
private byte[] message;
....
.... // some functions
public byte[] getMessage()
{
return message;
}
}
我的JSON文件有一个名为“message”的字段,其中存储了一个字符串。目前我正在使用com.fasterxml.jackson.databind.ObjectMapper中的ObjectMapper。语法是
ObjectMapper mapper = new ObjectMapper();
SomeName myObjects = mapper.readValue(jsonData, new TypeReference<SomeName>() {});
ObjectMapper mapper=new ObjectMapper();
SomeName myObjects=mapper.readValue(jsonData,newtypereference(){});
有没有一种方法可以使用此解决方案或替代解决方案(除了篡改POJO或JSON)实现此目的?您可以使用GSON library这样做。如果你不喜欢杰克逊图书馆。希望你能从这一部分得到答案
public class JsonParse
{
public static void main(String... args)
{
Employee product = new Employee("JSON");
Gson gson = new GsonBuilder().create();
gson = new
GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
String result = gson.toJson(product);
System.out.println(result);
}
}
class Employee
{
@Expose
private byte [] name;
public Employee(String name)
{
this.name = name.getBytes();
}
}
这是意料之中的,因为您无法以json格式发送二进制数据。Jackson将二进制数据编码为Base64,这是您在json结果中看到的值您能澄清您的答案吗?