有没有办法将普通的Java数组或ArrayList
转换为Android中的Json数组,以将JSON对象传递给Web服务?
答案 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"}]