使JSONObject可分割

时间:2015-12-02 17:01:06

标签: android json parcelable

我有一个JSON对象的数组列表,我试图像这样通过。

ArrayList<JSONObject> entryCities = new ArrayList<>();

for(int i = 0; i < entries.length(); i++){

    entryCities.add(entries.getJSONObject(i));

}

Intent intent = new Intent(UnitedStatesActivity.this, StateActivity.class);
intent.putExtra("object", entryCities);
startActivity(intent);

我知道这不起作用,我需要创建我的数组,或者数组中的JSON对象可以生成。我开始查看文档并提出了我希望将ArrayList<JSONObject>传递给我的课程,但我不确定我应该在{{1}中添加什么}} 方法。

我是否写出了我想要提取的JSON对象的具体值?即 writeToParcel()然后将我的parcelable对象传递给下一个活动?我只是不确定在使JSON对象可分割的上下文中该方法的内容应该是什么。

公共类StateParcelable extends JSONObject实现了Parcelable {

out.object.getString("string")

1 个答案:

答案 0 :(得分:4)

既然你已经拥有(似乎是)JSONArray的JSONArray,为什么不将它转换为String,传递它,并从那里重建JSONArray?

Intent intent = new Intent(UnitedStatesActivity.this, StateActivity.class);
intent.putExtra("object", entries.toString());
startActivity(intent);

然后在以下活动中:

JSONArray entries = new JSONArray(getIntent().getStringExtra("object"));

否则,是的,你必须遍历并序列化ArrayList中的各个项目,然后重建并将它们添加到列表中。

另外,请注意,您可以通过相同的方式传递单个JSONObject:分别通过toString()new JSONObject(getIntent().getStringExtra("object"))