2014-02-27 2 views
8

안드로이드에서 JSON.stringify을 수행 할 수있는 방법이 있습니까?JSON.stringify in java - android

나는 웹상에서 JSON.stringify(JSONObject)을 계속 볼 수 있지만 안드로이드에서 JSON 클래스를 찾을 수 없다.

어떤 도움이 필요합니까?

답변

14

JSON.stringify(JSONObject)은 자바 스크립트 기능이며 Java에서는 사용할 수 없습니다. Android SDK에 org.json.* 패키지를 사용하는 경우 JSONObject 인스턴스에서 toString() 또는 더 인간 친화적 인 toString(int)을 호출하면됩니다. JAVA에서 JSON 객체와

http://developer.android.com/reference/org/json/JSONObject.html#toString()

http://developer.android.com/reference/org/json/JSONObject.html#toString(int)

JSONObject obj = ... 
String jsonString = obj.toString(4); 
1

기본 동작은 (안드로이드 SDK에 포함) org.json 패키지 또는 javax.json (JAVA EE의 일부)의 도움으로 중 하나를 수행 할 수 있습니다. 둘 다 문자열로 된 JSONObject의 변환 toString() 방법이 :이 오래 알고

//assuming you have object `jsonobject` of class `JSONObject` 
String output = jsonobject.toString() 
2

을,하지만 같은 문제로 실행했습니다. 그리고 여기에 그다지 많은 것 같지 않습니다 ... 그래서 나는 내가 배운 것을 더할 것이라고 생각했습니다.

노력을 돕기 위해 타사 라이브러리를 사용했습니다 : org.codehaus.jackson 이 모든 다운로드는 here입니다.

은 기본 JSON 기능의 경우, 프로젝트의 라이브러리에 다음 항아리를 추가해야합니다 jackson-mapper-asljackson-core-asl

프로젝트가 필요로하는 버전을 선택합니다. (일반적으로 최신 안정 빌드로 갈 수 있습니다). 그들은 프로젝트의 라이브러리에 수입되면

, 코드에 다음 import 줄을 추가

import org.codehaus.jackson.JsonGenerationException; 
import org.codehaus.jackson.map.JsonMappingException; 
import org.codehaus.jackson.map.ObjectMapper;` 

를 정의하고 JSON으로 변환의 일환으로 반환 할 값을 할당 된 자바 객체로 편안한 웹 서비스

User u = new User(); 
u.firstName = "Sample"; 
u.lastName = "User"; 
u.email = "[email protected]"; 

ObjectMapper mapper = new ObjectMapper(); 

try { 
    // convert user object to json string and return it 
    return mapper.writeValueAsString(u); 
} 

    // catch various errors 
    catch (JsonGenerationException e) { 
    e.printStackTrace(); 
} 
    catch (JsonMappingException e) { 
    e.printStackTrace(); 
} 

해야는 다음과 같다 결과 : {"firstName":"Sample","lastName":"User","email":"[email protected]"}