【发布时间】:2015-12-05 11:10:07
【问题描述】:
我想解析下面的json。除了 args 部分,一切都可以找到。 gson 看起来像: my.json
{
"daily":[
{
"type":"anystring",
"set":[0,0,"anystring"],
"args":[[0,1,"String"],[1,1,"String"]]
},
{
"type":"anystring",
"set":[0,0,"anystring"],
"args":[[0,0,"anystring"],1,2,3]
}
]}
我的代码如下:
public class ReadJSON {
public static void main (String args[]) throws FileNotFoundException{
Gson gson = new Gson();
Daily data = gson.fromJson(new BufferedReader(new FileReader("my.json")), new TypeToken<Daily>() {}.getType());
System.out.println(data);
}
}
public class Daily {
public List<DailyRule> daily;
public List <DailyRule>getDaily(){
return daily;
}
@Override
public String toString() {
return daily.toString();
}
}
public class DailyRule {
public String type;
public List<String> set = new ArrayList<String>();
public List<String[]> args;
public String getType(){
return type;
}
public String getOp(){
return op;
}
public String getCond(){
return cond;
}
public List<String> getSet(){
return set;
}
public List<String[]> getArgs() {
return args;
}
@Override
public String toString() {
return type+" "+set.toString()+" "+args.toString();
}
}
它向我抛出了一个类似于 Expected BEGIN_ARRAY 的错误,但在第 NUMBER 行... 好吧,我理解为什么会抛出错误,但不知道如何解决它。我无法更改 json 文件(这可能是最简单的解决方案)。有没有比使用序列化程序更简单的解决方案?我将如何实施它?我讨厌成为菜鸟:/提前谢谢
【问题讨论】:
-
[[0,1,"String"],[1,1,"String"],是错字还是您的 JSON 格式错误? -
您的 json 格式错误...使用 jsonlint.com 验证您的 json
标签: java arrays json object gson