使用gson解析包含字符串和另一个数组的json数组吗?

时间:2017-07-31 12:31:46

标签: java android arrays json gson

请参阅以下json

{ "somekey" : 
    { "data" : [[
        "1", 
        "this is 2 ind index data", 
        ["one", "two", "three", "four", "five"]
    ]]}
}

以上是我的json数据的结构是一个包含2个字符串和一个数组的数组,我怎样才能实现使用Gson解析响应

以下是我写的模型类 的 BaseData.java

class BaseData
{
public SomeData somekey;
}

SomeData.java

class SomeData
{
ArrayList<ArrayList<String>> data
}

并且在得到响应通常的gson函数后,我调用了

 new  Gson().fromJson("above response string here", BaseData.class);

但是我收到以下错误

  

07-31 17:26:14.824 28099-28099 / W / System.err:引起:   java.lang.IllegalStateException:期望一个字符串但是BEGIN_ARRAY   在第1行第253行路径$。

据我所知,这是因为我制作的数组模型我只使用数组来接受字符串,但我该如何修复它,这样我就可以接受字符串和数组一起进行数组响应了

谢谢

2 个答案:

答案 0 :(得分:0)

你需要这样的结构:

class BaseData {
     SomeKey somekey;
}
class SomeKey {
     List<ArrayEntity> data;
}
class ArrayEntity {
     int firstVar;
     String secondVar;
     List<String> thirdVar;
}

并像这样使用它:

 new  Gson().fromJson("above response string here", BaseData.class);

答案 1 :(得分:0)

您必须使用Arraylist<Arraylist<Object>>,因为该列表中有不同的类型

您的提取代码必须稍后转换才能获得正确的类型