0

在我们的 Web 应用程序中,有一个 tomcat 5.5 服务器,它运行一个 servlet,该 servlet 创建一个文档,PDF 或 Word,然后将其以 json 格式发送回,其结构如下:

{
  "status": "OK", // or "ERROR" if an error occurred
  "format": "application/pdf", // or "application/msword" if a Word document was generated
  "document": [...] // document content
}

通过document首先将文档导出为 abyte[]然后调用toString()它来创建密钥。

整个 json 在 servlet 中通过使用这个库进行管理,在这里您可以看到一个响应示例。

但是,当调用 tomcat 服务器的 PHP 脚本接收到 json 字符串并运行它时json_decode(),它会返回NULL,好像数据不是有效的 json。

我在我使用的这个算法中犯了任何明显的错误吗?或者,更一般地说,如何使用 JSON 正确传输二进制数据?

4

1 回答 1

0

回答自己,因为我找到了解决这个问题的方法,即使我不确定是什么原因造成的。

无论如何,我发现如果我在将二进制数据作为 json 发送之前对其进行base64 编码,则 json 对象会被 PHP 脚本正确解析,并且成功地进行base64 解码会重新创建由 servlet 创建的原始文档。

于 2013-01-18T13:13:52.210 回答