在android中将普通Java数组或ArrayList转换为Json数组

在android中将普通Java数组或ArrayList转换为Json数组,java,android,json,Java,Android,Json,有没有办法在Android中将普通Java数组或ArrayList转换为Json数组,从而将Json对象传递给Web服务 ArrayList list=new ArrayList(); ArrayList<String> list = new ArrayList<String>(); list.add("blah"); list.add("bleh"); JSONArray jsArray = new JSONArray(list); 列表。添加(“废话”); 列表。添

有没有办法在Android中将普通Java数组或
ArrayList
转换为Json数组,从而将Json对象传递给Web服务

ArrayList list=new ArrayList();
ArrayList<String> list = new ArrayList<String>();
list.add("blah");
list.add("bleh");
JSONArray jsArray = new JSONArray(list);
列表。添加(“废话”); 列表。添加(“bleh”); JSONArray jsArray=新JSONArray(列表);

这只是一个使用字符串arraylist的示例,您需要外部库

 json-lib-2.2.2-jdk15.jar

List mybeanList = new ArrayList();
mybeanList.add("S");
mybeanList.add("b");

JSONArray jsonA = JSONArray.fromObject(mybeanList);
System.out.println(jsonA);

Google Gson是最好的库

如果您想要或需要使用Java数组,那么您可以始终使用
Java.util.Arrays
实用程序类的静态方法将数组转换为
列表

按照这些思路应该会奏效

String mStringArray[] = { "String1", "String2" };

JSONArray mJSONArray = new JSONArray(Arrays.asList(mStringArray));
<>提防代码是手写的,所以考虑它是伪代码。< /p> < p>示例键=“名称”值=“沙维尔”,值取决于您在

中通过的数组的数量。
 try
      {
      JSONArray jArry=new JSONArray();
      for (int i=0;i<3;i++)
      {
       JSONObject jObjd=new JSONObject();
       jObjd.put("key", value);
       jObjd.put("key", value);
       jArry.put(jObjd);
      }
      Log.e("Test", jArry.toString());
      }
 catch(JSONException ex)
     {

     }
试试看
{
JSONArray jArry=新的JSONArray();

对于(inti=0;i对于一个简单的java
String
数组,您应该尝试

String arr_str [] = { "value1`", "value2", "value3" };

JSONArray arr_strJson = new JSONArray(Arrays.asList(arr_str));
System.out.println(arr_strJson.toString());
如果您有一个字符串类型的通用ArrayList,如
ArrayList
。那么您应该尝试

 ArrayList<String> obj_list = new ArrayList<>();
    obj_list.add("value1");
    obj_list.add("value2");
    obj_list.add("value3");
  JSONArray arr_strJson = new JSONArray(obj_list));
  System.out.println(arr_strJson.toString());
ArrayList对象列表=新建ArrayList();
对象列表添加(“值1”);
对象列表添加(“值2”);
对象列表添加(“值3”);
JSONArray arr_strJson=新JSONArray(obj_列表));
System.out.println(arr_strJson.toString());

这是正确的语法:

String arlist1 [] = { "value1`", "value2", "value3" };
JSONArray jsonArray1 = new JSONArray(arlist1);

将数组转换为Json的代码

代码

List<String>a = new ArrayList<String>();
a.add("so 1");
a.add("so 2");
a.add("so 3");
JSONArray jray = new JSONArray(a);

System.out.println(jray.toString()); 

将ArrayList转换为JsonArray :像这些[{“title”:“value1”},{“title”:“value2”}]

示例如下:

具有一个参数标题和重写toString方法的模型类

class Model(
    var title: String,
    var id: Int = -1
){
    
    override fun toString(): String {
        return "{\"title\":\"$title\"}"
    }
}
创建模型类列表并打印到字符串

var list: ArrayList<Model>()
list.add("value1")
list.add("value2")
Log.d(TAG, list.toString())

是的!虽然普通字符串数组不是集合()的一部分,但它似乎不起作用。但是如果其他所有操作都失败,您可以为此运行for循环。尝试传递
arrays.asList(stringArray)
asList()
似乎不起作用,因为我现在遇到了这个问题。arrays.asList有必要吗?即使很难的JSONArray也没有使用String[]作为参数的构造函数。以下代码对我来说很好:
String[]strings={“a”,“b”};JSONArray json=新的JSONArray(strings);System.out.println(json.toString());
这两种方法都可以,但至少在Android中,JSONArray(字符串)在API 19之前是不受支持的。在当前版本的java中,工作方式是:new JSONArray().addAll(Arrays.asList(mStringArray))否,“Arrays.asList”不是必需的;否则,它将成为一个条目的新数组中的原始数组。
var list: ArrayList<Model>()
list.add("value1")
list.add("value2")
Log.d(TAG, list.toString())
[{"title":"value1"}, {"title":"value2"}]