如何从Google splitter返回的集合中读取值?

时间:2016-05-31 04:15:57

标签: string hashmap guava splitter

    MvcResult result;
    result = this.mockMvc.perform(something).andExpect( status().isOk() ).andReturn();

    String resultAsString = result.getResponse().getContentAsString();

/* resultAsString = "{"abc":"def","ghi":"jkl","mno":"pqr"}" */

    String resultAsString1 = StringUtils.remove( resultAsString, "{" );
            resultAsString1 = StringUtils.remove( resultAsString1, "}" );

    Map<String, String> resultAsMap = Splitter.on( "," ).withKeyValueSeparator( ":" ).split( resultAsString1 );

    String myValueName = (String) resultAsMap.get( "mno" );

但是在调试模式下,我看到的是myValueName = null。

有人可以帮忙吗?

我正在导入com.google.common.base.Splitter;

1 个答案:

答案 0 :(得分:1)

输入字符串中的键用引号括起来,但用于映射查找的键不是。您可能希望使用JSON库,例如Gson:

JsonObject obj = (JsonObject) (new JsonParser().parse("{\"key\": \"value\"}"));
String value = obj.get("key");