Java Can';t获取一个变量来存储解析后的JSONObject

Java Can';t获取一个变量来存储解析后的JSONObject,java,android,arrays,json,string-parsing,Java,Android,Arrays,Json,String Parsing,我试图将我的summariesJsonArray中解析的每个summaryJsonObject存储到变量storylineData中。我已经浏览了代码,我可以看到原始json到达summaryJsonObject&summariesJsonArray,但是变量storylineData始终保持空值。我在下面包含了我的代码。我还想将在同一方法中解析的数据段存储到变量storylineData中StorylineData是进行解析的类的名称以及json解析返回的变量 故事线数据 public

我试图将我的
summariesJsonArray
中解析的每个
summaryJsonObject
存储到变量
storylineData
中。我已经浏览了代码,我可以看到原始json到达
summaryJsonObject
&
summariesJsonArray
,但是变量
storylineData
始终保持空值。我在下面包含了我的代码。我还想将在同一方法中解析的数据
存储到变量
storylineData
StorylineData
是进行解析的类的名称以及json解析返回的变量

故事线数据

   public class StorylineData {
        private static String date;
        private ArrayList<SummaryData> summary;
        private ArrayList<SegmentData> segments;
        private String caloriesIdle;
        private String lastUpdate;
    public String getDate() {
        return date;
    }
public ArrayList<SummaryData> getSummary() {
    return summary;
}

public ArrayList<SegmentData> getSegments() {
    return segments;
}

public String getCaloriesIdle() {
    return caloriesIdle;
}

public String getLastUpdate() {
    return lastUpdate;
}

public void setDate(String date) {
    this.date = date;
}

public void setSummary(ArrayList<SummaryData> summary) {
    this.summary = summary;
}

public void setSegments(ArrayList<SegmentData> segments) {
    this.segments = segments;
}

public void setCaloriesIdle(String caloriesIdle) {
    this.caloriesIdle = caloriesIdle;
}

public void setLastUpdate(String lastUpdate) {
    this.lastUpdate = lastUpdate;
}

public static StorylineData parse(JSONObject jsonObject) {
    if (jsonObject != null) {
        StorylineData storylineData = new StorylineData();
        storylineData.date = jsonObject.optString("date");
        storylineData.caloriesIdle = jsonObject.optString("caloriesIdle");
        storylineData.lastUpdate = jsonObject.optString("lastUpdate");
        storylineData.summary = new ArrayList<SummaryData>();
        storylineData.segments = new ArrayList<SegmentData>();
        JSONArray summariesJsonArray= jsonObject.optJSONArray("summary");
        if (summariesJsonArray != null) {
            for (int i = 0; i < summariesJsonArray.length(); i++) {
                JSONObject summaryJsonObject = summariesJsonArray.optJSONObject(i);
                if (summaryJsonObject != null) {
                    storylineData.summary.add(SummaryData.parse(summaryJsonObject));
                    Log.d("storylineHandler", summaryJsonObject.toString());
                }
            }
        }
        JSONArray segmentsJsonArray = jsonObject.optJSONArray("segments");
        if (segmentsJsonArray != null) {
            for (int i = 0; i < segmentsJsonArray.length(); i++) {
                JSONObject segment = segmentsJsonArray.optJSONObject(i);
                if (segment != null) {
                    storylineData.segments.add(SegmentData.parse(segment));
                    Log.d("storylineHandler", segment.toString());
                }
            }
        }
        return storylineData;
    }
    return null;
}
}
public class SummaryData extends StorylineData {
    private String activity;
    private String group;
    private String duration;
    private String distance;
    private String steps;
    private String calories;

...getter/Setters...

public static SummaryData parse(JSONObject jsonObject) {
        if (jsonObject != null) {
                SummaryData summary = new SummaryData();
                summary.activity        = jsonObject.optString("activity");
                summary.group           = jsonObject.optString("group");
                summary.duration        = jsonObject.optString("duration");
                summary.distance        = jsonObject.optString("distance");
                summary.steps           = jsonObject.optString("steps");
                summary.calories        = jsonObject.optString("calories");
        //Log.d("json", summary.toString());

        return summary;
    }
    return null;
}
}
细分市场

public class SegmentData {
    private String type;
    private String startTime;
    private String endTime;
    private PlaceData place;
    private ArrayList<ActivityData> activities;
    private String lastUpdate;

...getter/Setters...

public static SegmentData parse(JSONObject jsonObject) {
        if (jsonObject != null) {
            SegmentData segmentData = new SegmentData();
            segmentData.type        = jsonObject.optString("type");
            segmentData.startTime   = jsonObject.optString("startTime");
            segmentData.endTime     = jsonObject.optString("endTime");
            segmentData.lastUpdate  = jsonObject.optString("lastUpdate");

            JSONArray activitiesJSONArray = jsonObject.optJSONArray("activities");
            segmentData.activities = new ArrayList<ActivityData>();
            if (activitiesJSONArray != null) {
                for (int i = 0; i < activitiesJSONArray.length(); i++) {
                    JSONObject activityJsonObject = activitiesJSONArray.optJSONObject(i);
                    if (activityJsonObject != null) {
                        segmentData.activities.add(ActivityData.parse(activityJsonObject));
                    }
                }
            }

            JSONObject placeJsonObject = jsonObject.optJSONObject("place");
            if (placeJsonObject != null) {
                segmentData.place = PlaceData.parse(placeJsonObject);
            }

            return segmentData;
        }
        return null;
    }
}

如果您同意使用第三方库,将非常有帮助。这也解释了其他解决方案。

将代码张贴在您正在解析Json@dbo您必须检查和/或发布SummaryData.parse和SegmentData.parseplz的代码添加示例jsonHi谢谢,我已经添加了json和Summary&Segment类。您是如何将storylineData设置为null的。。??!!这将被标记为“仅链接”答案!而是添加可能的代码,使其成为一个完整的答案@你看到Json了吗?当我甚至不知道响应是什么样子时,我如何编写代码。但我可以把他引向正确的道路,以实现他的目标。我说的是从给定的链接复制可能的代码,所以,如果在任何情况下,如果链接失效,那么答案仍然是有用的!
public class SegmentData {
    private String type;
    private String startTime;
    private String endTime;
    private PlaceData place;
    private ArrayList<ActivityData> activities;
    private String lastUpdate;

...getter/Setters...

public static SegmentData parse(JSONObject jsonObject) {
        if (jsonObject != null) {
            SegmentData segmentData = new SegmentData();
            segmentData.type        = jsonObject.optString("type");
            segmentData.startTime   = jsonObject.optString("startTime");
            segmentData.endTime     = jsonObject.optString("endTime");
            segmentData.lastUpdate  = jsonObject.optString("lastUpdate");

            JSONArray activitiesJSONArray = jsonObject.optJSONArray("activities");
            segmentData.activities = new ArrayList<ActivityData>();
            if (activitiesJSONArray != null) {
                for (int i = 0; i < activitiesJSONArray.length(); i++) {
                    JSONObject activityJsonObject = activitiesJSONArray.optJSONObject(i);
                    if (activityJsonObject != null) {
                        segmentData.activities.add(ActivityData.parse(activityJsonObject));
                    }
                }
            }

            JSONObject placeJsonObject = jsonObject.optJSONObject("place");
            if (placeJsonObject != null) {
                segmentData.place = PlaceData.parse(placeJsonObject);
            }

            return segmentData;
        }
        return null;
    }
}
[
    {
        "date": "20121212",
        "summary": [
            {
                "activity": "walking",
                "group": "walking",
                "duration": 3333,
                "distance": 3333,
                "steps": 3333,
                "calories": 300
            },
            {
                "activity": "walking_on_treadmill",
                "group": "walking",
                "duration": 270,
                "steps": 303,
                "calories": 30
            },
            {
                "activity": "transport",
                "group": "transport",
                "duration": 1124,
                "distance": 8443
            },
            {
                "activity": "underground",
                "group": "transport",
                "duration": 1003,
                "distance": 8058
            },
            {
                "activity": "zumba",
                "duration": 570,
                "calories": 200
            }
        ],
        "segments": [
            {
                "type": "place",
                "startTime": "20121212T000000+0200",
                "endTime": "20121212T071430+0200",
                "place": {
                    "id": 1,
                    "type": "unknown",
                    "location": {
                        "lat": 55.55555,
                        "lon": 33.33333
                    }
                },
                "lastUpdate": "20130317T121143Z"
            },
            {
                "type": "move",
                "startTime": "20121212T071430+0200",
                "endTime": "20121212T074617+0200",
                "activities": [
                    {
                        "activity": "walking",
                        "group": "walking",
                        "manual": false,
                        "startTime": "20121212T071430+0200",
                        "endTime": "20121212T072732+0200",
                        "duration": 782,
                        "distance": 1251,
                        "steps": 1353,
                        "calories": 99,
                        "trackPoints": [
                            {
                                "lat": 55.55555,
                                "lon": 33.33333,
                                "time": "20121212T071430+0200"
                            },
                            {
                                "lat": 55.55555,
                                "lon": 33.33333,
                                "time": "20121212T072732+0200"
                            }
                        ]
                    },
                    {
                        "activity": "transport",
                        "group": "transport",
                        "manual": false,
                        "startTime": "20121212T072732+0200",
                        "endTime": "20121212T074616+0200",
                        "duration": 1124,
                        "distance": 8443,
                        "trackPoints": [
                            {
                                "lat": 55.55555,
                                "lon": 33.33333,
                                "time": "20121212T072732+0200"
                            },
                            {
                                "lat": 55.55555,
                                "lon": 33.33333,
                                "time": "20121212T074208+0200"
                            },
                            {
                                "lat": 55.55555,
                                "lon": 33.33333,
                                "time": "20121212T074617+0200"
                            }
                        ]
                    }
                ],
                "lastUpdate": "20130317T121143Z"
            },
            {
                "type": "place",
                "startTime": "20121212T074617+0200",
                "endTime": "20121212T100051+0200",
                "place": {
                    "id": 2,
                    "type": "unknown",
                    "location": {
                        "lat": 55.55555,
                        "lon": 33.33333
                    }
                },
                "activities": [
                    {
                        "activity": "walking_on_treadmill",
                        "group": "walking",
                        "manual": true,
                        "duration": 270,
                        "steps": 303,
                        "calories": 30,
                        "trackPoints": []
                    }
                ],
                "lastUpdate": "20130317T121143Z"
            },
            {
                "type": "move",
                "startTime": "20121212T100051+0200",
                "endTime": "20121212T100715+0200",
                "activities": [
                    {
                        "activity": "walking",
                        "group": "walking",
                        "manual": false,
                        "startTime": "20121212T100051+0200",
                        "endTime": "20121212T100715+0200",
                        "duration": 384,
                        "distance": 421,
                        "steps": 488,
                        "calories": 99,
                        "trackPoints": [
                            {
                                "lat": 55.55555,
                                "lon": 33.33333,
                                "time": "20121212T100051+0200"
                            },
                            {
                                "lat": 55.55555,
                                "lon": 33.33333,
                                "time": "20121212T100715+0200"
                            }
                        ]
                    }
                ],
                "lastUpdate": "20130317T121143Z"
            },
            {
                "type": "place",
                "startTime": "20121212T100715+0200",
                "endTime": "20121212T110530+0200",
                "place": {
                    "id": 4,
                    "name": "test",
                    "type": "foursquare",
                    "foursquareId": "4df0fdb17d8ba370a011d24c",
                    "foursquareCategoryIds": ["4bf58dd8d48988d125941735"],
                    "location": {
                        "lat": 55.55555,
                        "lon": 33.33333
                    }
                },
                "activities": [
                    {
                        "activity": "walking",
                        "group": "walking",
                        "manual": false,
                        "startTime": "20121212T101215+0200",
                        "endTime": "20121212T101255+0200",
                        "duration": 40,
                        "distance": 18,
                        "steps": 37,
                        "calories": 99,
                        "trackPoints": [
                            {
                                "lat": 55.55555,
                                "lon": 33.33333,
                                "time": "20121212T101215+0200"
                            },
                            {
                                "lat": 55.55555,
                                "lon": 33.33333,
                                "time": "20121212T101255+0200"
                            }
                        ]
                    }
                ],
                "lastUpdate": "20130317T121143Z"
            },
            {
                "type": "move",
                "startTime": "20121212T110530+0200",
                "endTime": "20121212T111129+0200",
                "activities": [
                    {
                        "activity": "walking",
                        "group": "walking",
                        "manual": false,
                        "startTime": "20121212T110530+0200",
                        "endTime": "20121212T111128+0200",
                        "duration": 358,
                        "distance": 493,
                        "steps": 441,
                        "calories": 99,
                        "trackPoints": [
                            {
                                "lat": 55.55555,
                                "lon": 33.33333,
                                "time": "20121212T110531+0200"
                            },
                            {
                                "lat": 55.55555,
                                "lon": 33.33333,
                                "time": "20121212T110536+0200"
                            },
                            {
                                "lat": 55.55555,
                                "lon": 33.33333,
                                "time": "20121212T110947+0200"
                            },
                            {
                                "lat": 55.55555,
                                "lon": 33.33333,
                                "time": "20121212T111017+0200"
                            },
                            {
                                "lat": 55.55555,
                                "lon": 33.33333,
                                "time": "20121212T111129+0200"
                            }
                        ]
                    }
                ],
                "lastUpdate": "20130317T121143Z"
            },
            {
                "type": "place",
                "startTime": "20121212T111129+0200",
                "endTime": "20121212T153638+0200",
                "place": {
                    "id": 2,
                    "type": "unknown",
                    "location": {
                        "lat": 55.55555,
                        "lon": 33.33333
                    }
                },
                "activities": [
                    {
                        "activity": "zumba",
                        "manual": true,
                        "duration": 570,
                        "calories": 200,
                        "trackPoints": []
                    }
                ],
                "lastUpdate": "20130317T121143Z"
            },
            {
                "type": "move",
                "startTime": "20121212T153638+0200",
                "endTime": "20121212T160744+0200",
                "activities": [
                    {
                        "activity": "underground",
                        "group": "transport",
                        "manual": false,
                        "startTime": "20121212T153638+0200",
                        "endTime": "20121212T155321+0200",
                        "duration": 1003,
                        "distance": 8058,
                        "trackPoints": [
                            {
                                "lat": 55.55555,
                                "lon": 33.33333,
                                "time": "20121212T153638+0200"
                            },
                            {
                                "lat": 55.55555,
                                "lon": 33.33333,
                                "time": "20121212T155322+0200"
                            }
                        ]
                    },
                    {
                        "activity": "walking",
                        "group": "walking",
                        "manual": false,
                        "startTime": "20121212T155322+0200",
                        "endTime": "20121212T160744+0200",
                        "duration": 862,
                        "distance": 1086,
                        "steps": 1257,
                        "calories": 99,
                        "trackPoints": [
                            {
                                "lat": 55.55555,
                                "lon": 33.33333,
                                "time": "20121212T155322+0200"
                            },
                            {
                                "lat": 55.55555,
                                "lon": 33.33333,
                                "time": "20121212T155402+0200"
                            },
                            {
                                "lat": 55.55555,
                                "lon": 33.33333,
                                "time": "20121212T160744+0200"
                            }
                        ]
                    }
                ],
                "lastUpdate": "20130317T121143Z"
            },
            {
                "type": "place",
                "startTime": "20121212T160744+0200",
                "endTime": "20121212T232730+0200",
                "place": {
                    "id": 1,
                    "type": "unknown",
                    "location": {
                        "lat": 55.55555,
                        "lon": 33.33333
                    }
                },
                "lastUpdate": "20130317T121143Z"
            }
        ],
        "caloriesIdle": 1785,
        "lastUpdate": "20130317T121143Z"
    }
]