2017-11-18 134 views
1

我有这个JSON形式:转换JSON由GSON Java对象转换异常

[ 
{ 
    "command":"", 
    "name":"گزارش صدور", 
    "children": 
    [ 
     { 
      "command":"ReportDaily", 
      "name":"Daily", 
      "children":[], 
      "path":"/Sa/Certificates_Daily", 
      "params": 
      { 
       "PeriodType":"1", 
       "District":"0" 
      } 
     }, 
     { 
      "command":"ReportWeekly", 
      "name":"Weekly", 
      "children":[], 
      "path":"/Sa/Certificates_Daily", 
      "params": 
      { 
       "PeriodType":"2", 
       "District":"0" 
      } 
     } 
    ], 
    "path":"", 
    "params":{} 
},... 

现在我想将其转换为Java对象,为我创造了这个POJO类:

public class HierarchicalResource { 
public String command; 
public String name; 
public List<HierarchicalResource> children; 
public String path; 
public Params params; 


public class Params { 
    public String PeriodType; 
    public String District; 
} 
} 

通过GSON()我把这种JSON到Java对象是这样的:

return new Gson().fromJson(sb.toString(),new TypeToken<HierarchicalResource[]>(){}.getType()); 

但我得到这个错误:

java.lang.ClassCastException: com.views.HierarchicalResource[] cannot be cast to com.views.HierarchicalResource 

为什么它不能将我的类转换为HierarchicalResource?

+0

使用http://www.jsonschema2pojo.org/你的JSON转换到POJO – Prem

回答

2

看来你的方法被声明返回com.views.HierarchicalResource,但你返回一个数组com.views.HierarchicalResource[]

改变方法的返回类型为com.views.HierarchicalResource[]

+0

你的猜测是正确的!谢啦兄弟。 – Groot