我正在尝试将JSON字符串(由Web服务在HTTP响应上返回)转换为HashMap。在Python中,我可以简单地使用json.loads(string_response)
,它会给我一个很好的字典。我试图在Java中找到类似的东西。
我的片段是 -
String result = "{\"packetsReceived_Audio\":\"\",\"packetsReceived_Screen\":\"\",\"packetsReceived_Video\":\"\",\"packetsSent_Audio\":\"\",\"packetsSent_Screen\":\"\",\"packetsSent_Video\":\"\",\"sequenceNumber\":\"0\"}";
Map map = Splitter.on(",").withKeyValueSeparator(":").split(result);
正如下面的评论之一指出它应该已经返回哈希映射,它实际上不是。它返回给我一个集合,每个项目包含子项 - “键”和“值”。为清楚起见,请参见附图。我期待的是HashMap。
我知道我可以添加另一个步骤来创建一个通常的Map但我想检查框架中是否有可用的东西。
谢谢!
在调用withKeyValueSeparator
后,Splitter会返回一张地图。查看{}中的灰色文本,其中说明了地图变量的类型。这是一个实现地图的不可修改的地图。您也会看到条目集,因为您的IDE会内省不可修改映射的内部实现。
无论哪种方式,我认为你最好使用专门为解析json而构建的库。它会处理像包含冒号的json值这样的极端情况。这里有一些examples in Jackson。