在android中将普通的Java Array或ArrayList转换为Json Array

时间:2011-03-02 11:06:31

标签: java android json

有没有办法将普通的Java数组或ArrayList转换为Android中的Json数组,以将JSON对象传递给Web服务?

8 个答案:

答案 0 :(得分:102)

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

这些方面应该有所作为。

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

JSONArray mJSONArray = new JSONArray(Arrays.asList(mStringArray));

请注意代码是随手写的,所以请考虑伪代码。

答案 1 :(得分:36)

ArrayList<String> list = new ArrayList<String>();
list.add("blah");
list.add("bleh");
JSONArray jsArray = new JSONArray(list);

这只是使用字符串arraylist

的示例

答案 2 :(得分:8)

你需要外部图书馆

 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是最好的图书馆http://code.google.com/p/google-gson/

答案 3 :(得分:8)

示例key =“Name”value =“Xavier”,值取决于您传入的数组数量

 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)
     {

     }

答案 4 :(得分:5)

对于简单的java String数组,您应该尝试

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

JSONArray arr_strJson = new JSONArray(Arrays.asList(arr_str));
System.out.println(arr_strJson.toString());

如果你有一个类型为String的Generic ArrayList,如ArrayList<String>。那你应该试试

 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());

答案 5 :(得分:5)

这是正确的语法:

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

答案 6 :(得分:1)

我的代码将数组转换为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()); 

输出

["so 1","so 2","so 3"]

答案 7 :(得分:0)

将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())

这是您的输出

[{"title":"value1"}, {"title":"value2"}]