Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java POJO有一个byte[]字段,但与之对应的JSON有一个string字段。如何将字符串转换为字节[]?_Java_Json_Jackson - Fatal编程技术网

Java POJO有一个byte[]字段,但与之对应的JSON有一个string字段。如何将字符串转换为字节[]?

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”的字段,其中存储了一个字符串

我的POJO具有以下结构:

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结果中看到的值您能澄清您的答案吗?