Java 将hashMap.toString转换回hashMap

Java 将hashMap.toString转换回hashMap,java,Java,我的日志中有一行日志,如: {Contact={attributes={type=Contact}, Id=003, Email=xxx@xxx.com,, Account={attributes={type=Account}, Name=NBC, LLC}}, fromAccount=true} 这是使用HashMap.toString()记录的 我需要将其转换回hashMap 我尝试了objectMapper等,在谷歌上四处寻找,我找不到解决方案 请给出建议。您可以使用Snake Yaml

我的日志中有一行日志,如:

{Contact={attributes={type=Contact}, Id=003, Email=xxx@xxx.com,, Account={attributes={type=Account}, Name=NBC, LLC}}, fromAccount=true}
这是使用HashMap.toString()记录的

我需要将其转换回hashMap

我尝试了objectMapper等,在谷歌上四处寻找,我找不到解决方案


请给出建议。

您可以使用Snake Yaml,它看起来像这样,默认情况下会创建一个映射,但您遇到的问题是非标准字段语法,如

, Name=NBC, LCC

第一个
是分隔符,第二个是字段的一部分。
也有点奇怪。值的末尾是否有

首先需要为存储在映射中的类类型编写
fromString()
(或等效)方法。不能保证这是可能的
toString()
的目的是使某些东西具有可读性,但这通常不包括有关对象的所有信息。我必须同意azurefrog的观点。我认为java不支持从字符串到HashMap的解析。您必须拆分字符串并将其重新组织为mapIt。这是不可能的。考虑一个包含像“代码>”FO、Bar=QUUX“//COD>和<代码>”外,内层= {弗莱德=Baln}的字符串。除非它所包含的对象是为它精心设计的,否则无法将其解析回来。也许那时候也不行。为什么不直接使用JSON呢?如果HashMap存储了一致的键,那么您可以使用regex解析每个值,并且可能具有良好的可靠性,尽管可能包含逗号的值可能会有问题