【问题标题】:Return byte[] and string in Spring在 Spring 中返回 byte[] 和 string
【发布时间】:2012-09-07 00:23:25
【问题描述】:

我正在尝试将 Java Spring 与 Backbone.js 结合使用。我正在某个后端执行搜索,并从该对象接收一个令牌以及一个字符串。我想返回该字符串和该对象,因为我希望该对象持续存在(我需要稍后使用它)。

我的一个想法是序列化对象,然后获取结果 byte[] 并将其更改为字符串,然后将其与我的其他数据一起返回(可能在 json 对象中)。然后我是否能够通过将该字符串更改为字节 [] 来将该字符串转换回对象,或者这不起作用,因为它只会将该字符串转换为字符串的字节 [] 表示,而不是对象?

如果是这样,那么我如何使用 Spring 同时返回 JSON 对象和字节 []?

谢谢

【问题讨论】:

  • 那个对象是怎么从byte[]解析出来的,是什么对象?可以通过发送字符串将任何 Java 对象注入到您的应用程序中吗?

标签: java javascript spring spring-mvc backbone.js


【解决方案1】:

您可以通过谷歌搜索“Spring MVC tutorial json”找到大量关于如何从 Spring MVC 应用程序返回 JSON 编码数据的教程。

如果您打算在 JavaScript 应用程序中使用该数据,那么从 Java 应用程序返回编码为由 Java 序列化生成的字节数组的数据听起来不是一个好主意。如何在非 Java 环境中反序列化 Java 序列化的字节流?只需坚持使用 JSON 等跨平台、跨语言编码即可。

【讨论】:

  • 所以目前我正在使用 java 进行后端调用,我需要使某个对象持久化,因为我需要将它用于将来的后端调用。所以我从前端收到一个搜索请求,我执行相应的 API 调用,获取这个对象和一组结果,我需要将它们都发回,因为我需要这个对象用于未来的搜索请求——我需要让它持续存在java程序的作用域
  • 所以你想传回编码为字符串的byte[],客户端必须在后续请求中传递给服务器?我不确定这有什么意义——为什么不直接返回某种可以映射回应用程序中的对象的 ID?这听起来比必须像令牌一样传递的大型 base64 编码字符串更容易 - 并且通过网络传输的数据更少。您将如何处理可能篡改此令牌的价值并将恶意内容寄回给您的人?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多