在Android中有没有办法将普通的Java数组或ArrayList
转换为Json数组,以便将JSON对象传递给Web服务?
java.util.Arrays
实用类的静态asList()
方法将数组转换为List
。按照这样的方式应该可以工作。String mStringArray[] = { "String1", "String2" };
JSONArray mJSONArray = new JSONArray(Arrays.asList(mStringArray));
请注意,代码是随意编写的,因此请将其视为伪代码。
ArrayList<String> list = new ArrayList<String>();
list.add("blah");
list.add("bleh");
JSONArray jsArray = new JSONArray(list);
这只是一个使用字符串数组列表的示例
Arrays.asList(stringArray)
传递。 - Ben KaneasList()
看起来无法正常工作,因为我现在遇到了这个问题。 - limeandcoconut示例键 =“名称”,值=“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)
{
}
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/
。
String arlist1 [] = { "value1`", "value2", "value3" };
JSONArray jsonArray1 = new JSONArray(arlist1);
如果你需要一个简单的Java String
数组,你可以尝试以下方式:
String arr_str [] = { "value1`", "value2", "value3" };
JSONArray arr_strJson = new JSONArray(Arrays.asList(arr_str));
System.out.println(arr_strJson.toString());
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());
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());
output
["so 1","so 2","so 3"]
将 ArrayList 转换为 JsonArray : 类似这样 [{"title":"value1"}, {"title":"value2"}]
以下是示例:
模型类只有一个参数 title,并覆盖了 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"}]
String[] strings = {"a", "b"}; JSONArray json = new JSONArray(strings); System.out.println(json.toString());
- M--