Android使用JSONArray成员打包对象

Android使用JSONArray成员打包对象,android,json,parcelable,Android,Json,Parcelable,我正在开发一个Android应用程序,我需要通过将我创建的类的一个对象传递到一个包中来启动一个新活动,以便在新活动中使用它 我已经研究过如何做到这一点,似乎对于物体来说,最好的方法就是让它们可以打包。但是,问题是该对象的类的一个字段是JSONArray类型,并且似乎不支持JSONArray?或者我只是没有足够努力地寻找,或者我错过了一些东西,但我已经搜索了几个小时,仍然找不到任何东西 更具体地说,我需要使用 writeX() 其中X可以包含int、string等内容。但是,正如我刚才所说的,我的

我正在开发一个Android应用程序,我需要通过将我创建的类的一个对象传递到一个包中来启动一个新活动,以便在新活动中使用它

我已经研究过如何做到这一点,似乎对于物体来说,最好的方法就是让它们可以打包。但是,问题是该对象的类的一个字段是JSONArray类型,并且似乎不支持JSONArray?或者我只是没有足够努力地寻找,或者我错过了一些东西,但我已经搜索了几个小时,仍然找不到任何东西

更具体地说,我需要使用

writeX()

其中X可以包含int、string等内容。但是,正如我刚才所说的,我的一个字段是JSONArray类型,这是因为一个特定的原因(我无论如何都不想更改它),而且似乎Parcel不支持这一点


谢谢

您提前知道JSONArray是什么类型的吗?如果是这样,您可以将JSONArray转换为已知类型的列表

这里不支持JSONArray,因为它不是实现Parcelable的类。如果您完全无法控制JSONArray类型的选择,则需要将JSONArray转换为列表

以下代码将已知字符串类型的JSONArray转换为ArrayList:

ArrayList<String> list = new ArrayList<String>();    
JSONArray jsonArray = (JSONArray)jsonObject;
if (jsonArray != null) {
   for (int i=0;i<jsonArray.size();i++){
    list.add(jsonArray.get(i).toString());
}
ArrayList list=new ArrayList();
JSONArray JSONArray=(JSONArray)jsonObject;
if(jsonArray!=null){

对于(int i=0;i感谢您的回复,但不幸的是,此JSONArray包含太多变化信息,无法工作(它包含整数字符串、JSONObject甚至JSONArray--)但是,我找到了一种方法,这就是使用toString方法将整个JSONArray转换为字符串。这使得将其放入一个捆绑包成为可能。我真的不喜欢这样做……但我没有太多时间考虑这个问题太久:P。无论如何,谢谢

我能够将JSONObject的ArrayList放入bund使用putSerializable而不是putParcelable。

我刚刚在这个网站的帮助下尝试了一些东西:但它不起作用。我检查了DDMS,它说它无法封送JSONArray中的值……o在它被发送过来后,我只是通过使用:
codeJSONArray数组=新的JSONArray(字符串);
code