일반 Java 배열 또는 ArrayList를 android에서 Json Array로 변환


44

JSON 객체를 webservice로 전달하기 위해 Android의 Json Array로 일반 Java 배열 또는 ArrayList을 변환 할 수 있습니까?

85

또는 작업에 필요한 외부 라이브러리가 필요합니다 Java 배열을 사용하면 항상 java.util.Arrays 유틸리티 클래스의 정적 asList() 메서드를 사용하여 배열 t o a List.

그 라인을 따라 가면 효과가 있습니다.

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

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

코드는 의사 코드로 작성되므로 의사 코드로 작성하십시오.

+1

arrays.asList가 필요합니까? 터프한 JSONArray는 String []을 매개 변수로 갖는 생성자가 없습니다. 다음 코드는 저에게 잘 작동합니다 : 'String [] strings = { "a", "b"}; JSONArray json = 새 JSONArray (문자열); System.out.println (json.toString()); ' 24 aug. 132013-08-24 11:04:54

+1

두 가지 방법으로 모두 작동하지만 최소한 Android에서는 JSONArray (문자열)가 API 19까지 지원되지 않습니다. 31 mar. 152015-03-31 16:52:17

  0

현재 Java 버전에서 작동하는 방식은 다음과 같습니다. 새 JSONArray(). addAll (Arrays.asList (mStringArray)) 21 aug. 172017-08-21 18:27:42


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

이 ArrayList의 문자열을 사용하는 경우에만 예입니다

+6

그래! 비록 그들은 컬렉션 (http://developer.android.com/reference/java/util/Collection.html)의 일부가 아니지만 정상적인 문자열 배열에서 작동하지 않는 것? 그러나 다른 모든 것이 실패하면 for 루프를 실행할 수 있습니다. 02 mar. 112011-03-02 11:26:38

  0

'Arrays.asList (stringArray)'를 전달해보십시오. 14 oct. 132013-10-14 14:59:55

  0

'asList()'가 작동하지 않는 것 같습니다. 지금이 문제가 있습니다. 13 may. 142014-05-13 15:34:59


7

당신이

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

구글 GSON 원하는 경우 가장 좋은 라이브러리 http://code.google.com/p/google-gson/


7

예를 들어 키 = "이름"값 = "자비에르"와 값은

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

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

만약을 시도해야합니다 간단한 자바 String 배열

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

    } 

3

전달 배열의 수에 따라 달라집니다 당신은 ArrayList<String>처럼 String 타입의 Generic 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());