첫 번째 방법은 JSON-LIB를 사용하는 것입니다.
두 번째 방법은 잭슨을 사용하는 것입니다.
처음 두 가지 방법은 비교적 간단한 Pojo 객체에서 비교적 쉽습니다. 그러나 중첩 된 다층 데이터와 비교하여 복잡성이 직접 증가합니다.
세 번째 방법은 Google의 GSON을 사용하여 해결됩니다. Android를 작성한 사람은이 제품이 Google에 의해 제작된다는 것을 알고 있습니다. 사용하는 것은 자연스럽고 상쾌하며 값 방법은 매우 유연합니다. 모든 복잡한 JSON 값은 기본적으로 수행됩니다.
GSON에는 두 가지 개념이 있습니다. 하나는 jsonobject 및 jsonarray입니다. 특히 코드에 따라 다릅니다
코드 사본은 다음과 같습니다.
패키지 com.mycompany.gsondata;
import com.google.gson.jsonarray;
import com.google.gson.jsonobject;
import com.google.gson.jsonparser;
/**
* 안녕하세요!
*
*/
공개 클래스 앱 {
public static void main (String [] args) {
문자열 jsondata = "{/"QuestionnaireId/": /"qntest/",/"answerresults/": [{/"QuestionId/":/"QStest01/",/"Ansercontent/":/"CFB7F441-9086-11E3-8CF8-000C2945C42/"}, {/" QuestionId/":/"qstest01/",/ "ansercontent/":/"CFB7F441-9086-11E3-8CF8-000C2945C442/"}, {/"QuestionId/":/"QStest03/",/"Ansercontent/":/"6B3A9CCE-9087-11E3-8CF8-000C2945C42 , A0863 31D-9087-11E3-8CF8-000C2945C442/"}, {/"QuestionId/":/"QStest01/",/"Ansercontent/":/"CFB7F441-9086-11E3-8CF8-000C2945C442/"} {/" QuestionId/":/"QStest0 5/",/"ansercontent/":/"테스트 테스트 텍스트 채우기/"}, {/"QuestionId/":/"QStest06/",/"Ansercontent/":/"3/" }.
jsonObject root = new JsonParser (). parse (jsondata) .getAsjsonObject ();
System.out.println (root.get ( "QuestionnaireId"). toString ()); // 루트 노드 값은 직접 가져옵니다
jsonArray answerList = root.getAsjsonArray ( "answerresults"); // 배열을 가져옵니다
for (int i = 0; i <answerlist.size (); i ++) {
system.out.println (answerList.get (i) .getAsJsonObject (). get ( "QuestionId"). toString ());
System.out.println (answerList.get (i) .getAsjsonObject (). get ( "ansercontent"). toString ());
}
}
}