【问题标题】:How can I deserialise a String in a Stream in java?如何在java中反序列化Stream中的字符串?
【发布时间】:2020-02-15 04:58:20
【问题描述】:

我有一个字符串,例如: "NEXT":"mode1":2,"mode2":3,"mode3":7

我想在流中对其进行序列化,以将“mode1”:2、“mode2”:3 等提取到 HashMap 中。

这怎么可能?

【问题讨论】:

  • 这有多个字符串对吧?这不是一个单一的字符串?请出示您的意见?
  • 这不是字符串!
  • 您要反序列化的字符串是否有固定格式?
  • 你真正想做什么?您的问题实际上并不是关于在 Stream 中反序列化 Strings 是吗,您是否正在尝试将 JSON 字符串转换为 HashMap?如果是这样,请使用 Jackson 或其他库。
  • 这里我什至看不到有效的 json 字符串。请仔细阅读并首先发布一个最小且可重现的示例:stackoverflow.com/help/minimal-reproducible-example

标签: java string serialization functional-programming stream


【解决方案1】:

假设"NEXT": 不属于您的输入字符串,您可以执行以下操作:

String input = "\"mode1\":2,\"mode2\":3,\"mode3\":7";
Map<String, Integer> map = Stream.of(input.split(","))
            .map(it -> it.split(":"))
            .collect(Collectors.toMap(
                it -> it[0].replace("\"", ""),
                it -> Integer.parseInt(it[1])));

【讨论】:

    猜你喜欢
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    • 2010-11-22
    • 2018-01-19
    • 1970-01-01
    • 2018-11-01
    相关资源
    最近更新 更多