2013-02-11 79 views
1

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

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

155193155194从服务器的随机值。

需要使用HashMap或任何想法?

+1

怎么样的JSON是“不正确的”? – 2013-02-12 00:30:17

+0

我的情况更好的是:“电话”:[“5556739386”, “5555301828”] – GeX 2013-02-12 01:27:01

回答

1

你的回答肯定是正确的(不要忘记将其标记为接受!),但我有两个音符,我把回答的形式。

首先,如果你也可以用这样的方式:

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

,您将收到一个anycase地图,当然在这种情况下你需要一个演员。所以你的解决方案更好。但是,如果服务器发送你的手机列表,它会但是工作(当然,你将有一个类转换异常在你的代码,而不是一个JSONParsingException

其次,你的JSON是不是无效,如果你看一下this,你会发现这是正确的解析,这里不起作用的是你不能遵循POJO的方法来解析。一种方式就像你回答,另一种可能是编写一个适配器,让你回到一个地图。所以这不会是什么大事,让Gson更好地处理这种情况就像你一样。

1

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

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