【问题标题】:Clean way to reparse a Map重新解析地图的干净方法
【发布时间】:2011-01-14 00:15:23
【问题描述】:

假设我有一个属性映射,我想要一个字符串表示。 toString 以 {key=value, ...} 的形式购买。我需要通过电线发送这些数据并将其重新解析为另一端的 Map。考虑到数据中可能包含逗号,最好的方法是什么?

另外,还有其他我完全缺少的技术吗?如果我可以通过电线本身发送对象,那就太好了。不过,我想避免 RMI。

【问题讨论】:

    标签: java parsing sockets serialization map


    【解决方案1】:

    您是否考虑过只使用 Java 序列化?

    如果您的 Map 中的键和值非常简单,那么您应该是金子。 ObjectOutputStream 和 ObjectInputStream 会帮助你。

    它在大小和速度方面并不是非常有效,但是实施起来非常快。

    编辑:很简单,是的,我的意思是实现可序列化。但我也意味着对象是非常简单的对象。如果每个对象都是某种图或树,那么序列化可能会遇到更多问题。

    【讨论】:

    • “非常简单”是指实现Serializable? (请具体)
    • 这是一个很好的解决方案。不敢相信我没想到,但谢谢!
    【解决方案2】:

    如果您需要人类可读性和机器可读性,请考虑使用JSON(如果您的地图可以使用它进行序列化)。有几个库可以做到这一点,包括 Google GSON 也允许自定义序列化到/从 JSON。

    【讨论】:

      【解决方案3】:

      或使用其加载/保存方法将其作为属性发送。

      【讨论】:

        【解决方案4】:

        由于属性是可序列化的,因此使用ObjectOutputStream 是最干净、最简单的解决方案。 (也适用于所有基本的 Map 实现,但如果您碰巧有一个不可序列化的地图,您总是可以创建一个具有相同内容的 HashMap 并对其进行序列化。)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-11-01
          • 1970-01-01
          • 2012-12-03
          • 2022-08-11
          • 1970-01-01
          • 2013-01-08
          相关资源
          最近更新 更多