如何使用Gson库解析不正确的JSON

时间:2013-02-11 23:38:53

标签: java json gson

如何使用 Gson 库解析这个不正确的(我认为)JSON。

   {
    ......
       "phones":{
           "155193":"5556739386",
           "155194":"5555301828"
       }
     ......
   }

字符串155193155194是来自服务器的随机值。

需要使用HashMap或任何想法?

2 个答案:

答案 0 :(得分:1)

对于这种情况,它帮助了我:

  public class ServerResponse {
     ...
     private HashMap<String, String> phones;
     ...
  }

答案 1 :(得分:1)

你的答案肯定是正确的(不要忘记将其标记为已接受!),但我有两个笔记,我以答案的形式。

首先,如果你也可以这样使用:

  public class ServerResponse {
     ...
     private Object phones;
     ...
  }

你会收到任何地图,当然在这种情况下你需要一个演员表。所以你的解决方案更好。但是,如果服务器向您发送了一个电话列表,它会起作用(当然,您的代码中会有一个类强制转换异常,而不是JSONParsingException

其次, JSON无效,如果查看this,您会看到已正确解析。这里不起作用的是,你不能按照POJO方法进行解析。一种方式就像你回答的那样,另一种可能性就是写一个适合你的适配器......一张地图。所以这不会是一件大事,让Gson像你一样处理这种情况会更好。