>  기사  >  Java  >  JSON 데이터를 Java 객체로 변환하는 방법

JSON 데이터를 Java 객체로 변환하는 방법

高洛峰
高洛峰원래의
2017-01-19 15:21:101724검색

첫 번째 방법은 JSON-lib를 사용하는 것입니다.
두 번째 방법은 JACKSON을 사용하는 것입니다.
처음 두 가지 방법은 상대적으로 간단한 Pojo 객체의 경우 상대적으로 쉽습니다. 그러나 여러 계층의 데이터를 중첩하는 것과 비교하면 복잡성이 직접적으로 증가합니다.
세 번째 방법은 GOOGLE의 Gson을 활용하여 문제를 해결하는 것입니다. Android에 대해 글을 써본 사람이라면 이 제품이 Google에서 제작되었다는 사실을 알고 있을 것입니다. 가장 큰 장점은 기본적으로 다른 패키지에 의존하지 않는다는 것입니다. 사용하기가 자연스럽게 재미있고, 값 설정 방법이 매우 유연합니다. 복잡한 JSON 값의 경우 기본적으로 모든 작업이 완료됩니다.
Gson에는 두 가지 개념이 있습니다. 하나는 JsonObject와 JsonArray입니다. 자세한 내용은 코드를 참조하세요

package com.mycompany.gsondata;  
import com.google.gson.JsonArray;  
import com.google.gson.JsonObject;  
import com.google.gson.JsonParser;  

/** 
 * Hello world! 
 * 
 */  
public class App {  

    public static void main(String[] args) {  
        String jsonData = "{\"questionnaireID\": \"QNTest\",\"answerResults\":[{\"questionID\":\"QSTest01\",\"anserContent\":\"cfb7f441-9086-11e3-8cf8-000c2945c442\"},{\"questionID\":\"QSTest01\",\"anserContent\":\"cfb7f441-9086-11e3-8cf8-000c2945c442\"},{\"questionID\":\"QSTest03\",\"anserContent\":\"6b3a9cce-9087-11e3-8cf8-000c2945c442,a086331d-9087-11e3-8cf8-000c2945c442\"},{\"questionID\":\"QSTest01\",\"anserContent\":\"cfb7f441-9086-11e3-8cf8-000c2945c442\"},{\"questionID\":\"QSTest05\",\"anserContent\":\"test测试文字填空\"},{\"questionID\":\"QSTest06\",\"anserContent\":\"3\"},{\"questionID\":\"QSTest07\",\"anserContent\":\"2.2\"}]}";  
        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());  
        }  

    }  
}

JSON 데이터를 Java 객체로 변환하는 방법에 대한 더 많은 관련 기사를 보려면 PHP 중국어 웹사이트에 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.