2017-11-18 80 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