2016-10-25 52 views
0

我試圖解析Android中,但得到的錯誤使用GSON數據:試圖解析Android中使用JSON GSON數據:預期BEGIN_ARRAY但BEGIN_OBJECT

java.lang.IllegalStateException:預期BEGIN_ARRAY但 BEGIN_OBJECT在第1行第2列。

如何解析這些數據以存儲在Model類中。

JSON數據:

{"activities-steps":[{"dateTime":"2016-09-24","value":"0"},{"dateTime":"2016-09-25","value":"0"},{"dateTime":"2016-09-26","value":"0"},{"dateTime":"2016-09-27","value":"0"},{"dateTime":"2016-09-28","value":"0"},{"dateTime":"2016-09-29","value":"0"},{"dateTime":"2016-09-30","value":"0"},{"dateTime":"2016-10-01","value":"0"},{"dateTime":"2016-10-02","value":"0"},{"dateTime":"2016-10-03","value":"0"},{"dateTime":"2016-10-04","value":"0"},{"dateTime":"2016-10-05","value":"0"},{"dateTime":"2016-10-06","value":"0"},{"dateTime":"2016-10-07","value":"0"},{"dateTime":"2016-10-08","value":"0"},{"dateTime":"2016-10-09","value":"0"},{"dateTime":"2016-10-10","value":"0"},{"dateTime":"2016-10-11","value":"0"},{"dateTime":"2016-10-12","value":"0"},{"dateTime":"2016-10-13","value":"0"},{"dateTime":"2016-10-14","value":"0"},{"dateTime":"2016-10-15","value":"0"},{"dateTime":"2016-10-16","value":"0"},{"dateTime":"2016-10-17","value":"0"},{"dateTime":"2016-10-18","value":"0"},{"dateTime":"2016-10-19","value":"0"},{"dateTime":"2016-10-20","value":"0"},{"dateTime":"2016-10-21","value":"0"},{"dateTime":"2016-10-22","value":"0"},{"dateTime":"2016-10-23","value":"0"},{"dateTime":"2016-10-24","value":"0"}]} 

我的模型類:

class StepDataModel { 
ArrayList<Activities_step > activities[];  
// ArrayList<Activities_step> activities_steps = new  ArrayList<activities_step>(); 
public ArrayList<Activities_step>[] getActivities() { 
    return activities; 
} 
public void setActivities(ArrayList<Activities_step>[] activities) { 
    this.activities = activities; 
} 


class Activities_step { 
    public String dateTime; 
    public String value; 

    public String getDateTime() { 
     return dateTime; 
    } 

    public void setDateTime(String dateTime) { 
     this.dateTime = dateTime; 
    } 

    public String getValue() { 
     return value; 
    } 

    public void setValue(String value) { 
     this.value = value; 
    }}} 

我試圖使用存儲在活動JSON數據:

StepDataModel stepDataModel = gson.fromJson(result.toString(), StepDataModel.class); 

誰能告訴我在哪裏我做錯了嗎?

+0

您是否嘗試過使用此網站? http://www.jsonschema2pojo.org/請確保在源類型中選擇「JSON」並在註釋樣式中選擇「Gson」 – hehe

+0

提示:在您的JSON中查看其StepDataModel數組,不僅僅是StepDataModel對象 – mhasan

回答

0

檢查:

package com.example; 

import javax.annotation.Generated; 
import com.google.gson.annotations.Expose; 
import com.google.gson.annotations.SerializedName; 


public class ActivitiesStep { 

@SerializedName("dateTime") 
@Expose 
private String dateTime; 
@SerializedName("value") 
@Expose 
private String value; 

/** 
* 
* @return 
* The dateTime 
*/ 
public String getDateTime() { 
return dateTime; 
} 

/** 
* 
* @param dateTime 
* The dateTime 
*/ 
public void setDateTime(String dateTime) { 
this.dateTime = dateTime; 
} 

/** 
* 
* @return 
* The value 
*/ 
public String getValue() { 
return value; 
} 

/** 
* 
* @param value 
* The value 
*/ 
public void setValue(String value) { 
this.value = value; 
} 

} 
-----------------------------------com.example.Example.java----------------------------------- 

package com.example; 

import java.util.ArrayList; 
import java.util.List; 
import javax.annotation.Generated; 
import com.google.gson.annotations.Expose; 
import com.google.gson.annotations.SerializedName; 


public class Example { 

@SerializedName("activities-steps") 
@Expose 
private List<ActivitiesStep> activitiesSteps = new ArrayList<ActivitiesStep>(); 

/** 
* 
* @return 
* The activitiesSteps 
*/ 
public List<ActivitiesStep> getActivitiesSteps() { 
return activitiesSteps; 
} 

/** 
* 
* @param activitiesSteps 
* The activities-steps 
*/ 
public void setActivitiesSteps(List<ActivitiesStep> activitiesSteps) { 
this.activitiesSteps = activitiesSteps; 
} 

} 
+0

使用此類模型其工作現在......但是問題是什麼......感謝很多....... –

+0

@sanketThakare:在json中,你必須使用「活動 - 步驟」而不是活動。爲此,您必須提供序列化名稱。請接受我的回答。 –

+0

好的非常感謝....確定 –

0

您StepDataModel類是錯誤的,我認爲糾正

class StepDataModel{ 

@SerializedName("activities-steps") 
ArrayList<Activities_step> activities; 
public ArrayList<Activities_step> getActivities() { 
    return activities; 
} 
public void setActivities(ArrayList<Activities_step> activities) { 
    this.activities = activities; 
} 
} 

試試這個,希望這個作品。

相關問題