Existe-t-il un moyen de convertir un tableau Java normal ou ArrayList
normal] en un tableau Json dans Android pour transmettre l'objet JSON à un service Web?
Si vous voulez ou devez travailler avec un tableau Java, vous pouvez toujours utiliser le paramètre static _ de la classe d'utilitaires Java.util.Arrays
asList()
_ pour convertir votre tableau en List
.
Quelque chose dans ce sens devrait marcher.
String mStringArray[] = { "String1", "String2" };
JSONArray mJSONArray = new JSONArray(Arrays.asList(mStringArray));
Attention, le code est écrit à la volée, donc considérez-le comme un pseudo-code.
ArrayList<String> list = new ArrayList<String>();
list.add("blah");
list.add("bleh");
JSONArray jsArray = new JSONArray(list);
Ceci est seulement un exemple utilisant un arraylist de chaîne
vous avez besoin d'une bibliothèque externe
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 est la meilleure bibliothèque http://code.google.com/p/google-gson/
example key = "Name" value = "Xavier" et la valeur dépend du nombre de tableaux que vous transmettez
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)
{
}
Pour un simple Java String
Array, vous devriez essayer
String arr_str [] = { "value1`", "value2", "value3" };
JSONArray arr_strJson = new JSONArray(Arrays.asList(arr_str));
System.out.println(arr_strJson.toString());
Si vous avez une ArrayList générique de type String comme ArrayList<String>
. alors vous devriez essayer
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());
C'est la syntaxe correcte:
String arlist1 [] = { "value1`", "value2", "value3" };
JSONArray jsonArray1 = new JSONArray(arlist1);