是否可以将对象序列化为纯文本字符串并将其作为字符串发送然后将其转换回来?

时间:2013-04-16 21:52:15

标签: java

正如标题所说。我正在从我的服务器发送一条消息到一个超出我控制范围的代理,然后将它发送到我的应用程序。我所能做的就是发送和接收字符串。是否可以序列化为普通字符串并以这种方式发送而没有通常的输入/输出流?

TIA

更多信息:

public class myClass implements java.io.Serializable {
int h = "ccc";
int i = "bbbb";
String myString = "aaaa";
}

我有这门课,例如。现在我想序列化它并将其作为字符串发送到我的HTTPpost中并发送给代理,对此阶段无能为力:

    HttpPost post = new HttpPost("http://www.myURL.com/send.php?msg="+msg);

然后在另一侧接收msg作为字符串并将其转换回来。

没有很多其他图书馆,这很容易吗?

3 个答案:

答案 0 :(得分:2)

这是每天使用JSON和XML完成的,只是为了命名一些易于格式化和解析的字符串格式。 (阅读JAXRS以了解使用JSON格式化字符串执行此操作并执行传输的方法。或者,阅读有关格式为XML但不会因字符串通信而停止的JAXB。)

您可以使用CSV格式。

您可以使用字符字段固定。

摩尔斯电码不是一个不同的概念,只是从字符串开始并转换为短而长的哔哔声。

它的工作方式是:

  1. 有一些代码可以传递一个对象,它会返回一个已知格式的字符串。
  2. 您以某种方式将字符串发送到其他服务器。发送字符串的一些方法对长度有限制。
  3. 其他服务器收到字符串。
  4. 使用其格式知识,其他服务器解析字符串内容并使用它。
  5. 一些注意事项:

    • 如果两台服务器都使用Java(或C#或Python或PHP或其他),则格式化和解析将成为对称的。您从某种类型的Java对象开始,最后在另一个相同类型的JVM中使用Java对象。 但这不是一个给定的。您可以将值存储在一个服务器中的自定义POJO中,将值存储在另一个服务器中。

    • 如果您编写代码进行格式化和解析,只要内容很简单并且您不会违反传输规则,这似乎很容易。例如,如果您发送HTTP get的查询部分,则字符串中不能包含任何&符号。

    • 如果您使用现有的库,您可以利用其他人获得的知识,了解如何正确执行此操作。

    • 如果您对字符串使用标准格式,则很容易解释其他人正在发生的事情。如果您的项目有效,第三台服务器可能希望进入通信循环,如果它受其他人控制......

    • 格式化比解析更容易。其他人已经解决了许多陷阱。如果您这样做是为了学习不做事情和改善自己的知识基础的方法,那么一定要自己动手。如果您想要坚如磐石的性能,请使用现有的标准库和格式。

答案 1 :(得分:1)

看看 XStream 。它序列化为XML,使用起来非常简单。

看一下Two Minute Tutorial

答案 2 :(得分:0)

是的,这是可能的。您可以使用ajax将字符串序列化为json对象,并使用ajax.post事件(javascript事件)将其返回给服务器。