无法使用gson反序列化JSON响应

时间:2014-09-16 19:47:33

标签: java android json gson retrofit

我正在使用API​​提供输入字符串,并返回一些关键字自动填充和产品节点。

我的目标是反序列化响应并获取我可以使用的自动完成字符串列表。我试图在一个带有Retrofit库的Android应用程序中实现它,该库使用gson。

首先,我不确定我的响应是典型的JSON响应。节点' item有键/值对,但输入字符串和自动填充列表似乎没有我可以使用的键。

["pol",
["polaroid camera",
"polo",
"polo ralph lauren",
"polo ralph lauren men",
"polar heart rate monitor",
"polaroid",
"polo shirt",
"polar watch",
"police scanner",
"polar"],
[{
     "nodes": [{
        "alias": "electronics",
        "name": "Electronics"
    },
    {
        "alias": "electronics-tradein",
        "name": "Electronics Trade-In"
    }]
},
{

},
{

},
{

},
{

},
{

},
{

},
{

},
{

},
{

}],
[]]

这是我尝试将gson反序列化的java类。但是,根据我的理解,它不起作用,gson需要类变量来匹配JSON键(对于Node类是真的,而不是其余的)。

class Response {
   String input;
   List<String> keywords;
   List<Node> nodes;
}

class Node {
   String alias;
   String name;
}

1 个答案:

答案 0 :(得分:1)

json中只有几个键,这主要是一个Json数组。

如果您可以更改JSON,请将其更像

{
   "input" : "pol",
    "keywords" : ["polaroid camera","polo",...],
    "nodes": [{
            "alias": "electronics",
            "name": "Electronics"
        },
        {
            "alias": "electronics-tradein",
            "name": "Electronics Trade-In"
        }]
}