使用Java在json对象中添加字节数组

时间:2018-09-19 19:21:54

标签: java json

我有以下情况。它需要用Java实现。

  1. 从文本文件获取输入,然后将内容转换为字节数组。
  2. 使用上述字节数组作为JSON对象的一部分,创建一个.json文件

对于point1,我已经做了类似的事情。

  InputStream is = new ClassPathresource("file.txt").getInputStream();
  byte[] ip =  IOUtils.toByteArray(is);

对于point2,我的Json文件(包含json对象)应如下所示。

  {
   "name": "xyz",
   "address: "address here",
   "ipdata": ""
  }

ipdata 应该包含在步骤1中创建的字节数组。

如何将步骤1中创建的字节数组作为其一部分来创建json对象?然后将全部内容写入单独的.json文件?

在第一步中完成字节数组转换还是一种最佳方式,还是我们需要使用其他任何API(可能是为了进行编码)?

感谢您的帮助。预先感谢。

2 个答案:

答案 0 :(得分:1)

  1. 您可以简单地使用Fatal signal 7 (SIGBUS), code 1, fault addr 0x89010065 in tid 5841 (Thread-14) 来转换字节数组ip
  2. 或者,如果您知道编码,则可以使用ip.toString()

然后使用该字符串将其添加到您的json对象中。

答案 1 :(得分:0)

由于您正在从文件中读取JSON字符串并将其写回到新的json文件中,因此您之间不需要JSON对象转换。只需将byte []转换为

即可

String ips = new String(ip);

现在,使用要写入新文件的数据创建一个JSON对象。然后,您可以使用FileWriter将数据写入文件。 PFB代码-

JSONObject obj = new JSONObject();
obj.put("name", "xyz");
obj.put("address", "address here");
obj.put("ipdata", ips);
try(FileWriter fileWriter =
    new FileWriter("newFileName.json") ){
    fileWriter.write(obj.toString());
}