> Java > java지도 시간 > 본문

Maven 프로젝트의 JSON 스키마에서 Java 클래스를 생성하려면 어떻게 해야 합니까?

Linda Hamilton
풀어 주다: 2024-11-20 13:33:16
원래의
798명이 탐색했습니다.

How can I generate Java classes from a JSON schema in a Maven project?

Maven을 사용하여 JSON에서 Java 클래스 생성

문제:

Java Maven 프로젝트에서 Java를 생성하는 방법 JSON 스키마의 소스 파일? 예를 들어 다음 JSON이 있다고 가정합니다.

{
  "firstName": "John",  
  "lastName": "Smith",  
  "address": {  
    "streetAddress": "21 2nd Street",  
     "city": "New York"
  }
}
로그인 후 복사

다음과 같은 Java 클래스를 생성하려고 합니다.

class Address  {
    JSONObject mInternalJSONObject;
     
    Address (JSONObject json){
        mInternalJSONObject = json;
    }
     
    String  getStreetAddress () {
        return mInternalJSONObject.getString("streetAddress");
    }
    
    String  getCity (){
        return mInternalJSONObject.getString("city");
    }
}

class Person {        
    JSONObject mInternalJSONObject;
    
    Person (JSONObject json){
        mInternalJSONObject = json;
    }
    
    String  getFirstName () {
        return mInternalJSONObject.getString("firstName");
    }
    
    String  getLastName (){
        return mInternalJSONObject.getString("lastName");
    }
    
    Address getAddress (){
        return Address(mInternalJSONObject.getString("address"));
    }
}
로그인 후 복사

솔루션:

  1. JSON 스키마 사용: 보다 강력한 솔루션을 위해 다음을 제공하는 JSON 스키마 사용을 고려하세요. JSON 구조의 공식 정의.
  2. jsonschema2pojo Maven 플러그인:

    <plugin>
        <groupId>org.jsonschema2pojo</groupId>
        <artifactId>jsonschema2pojo-maven-plugin</artifactId>
        <version>1.0.2</version>
        <configuration>
            <sourceDirectory>${basedir}/src/main/resources/schemas</sourceDirectory>
            <targetPackage>com.myproject.jsonschemas</targetPackage>
            <sourceType>json</sourceType>
        </configuration>
        <executions>
            <execution>
                <goals>
                    <goal>generate</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
    로그인 후 복사

    소스가 JSON인 경우 sourceType을 json으로 설정합니다. JSON 스키마의 경우 이 줄을 제거하세요.

추가 팁:

  • JSON 스키마: JSON 스키마가 있으면 Java 클래스를 다음으로 변환하여 생성할 수 있습니다. com.sun.codemodel.jsonschema.JsonUnboxer 클래스를 사용하는 org.jsonschema2pojo.model.Schema 개체.
  • 사용자 정의 코드 생성: jsonschema2pojo 도구를 직접 사용하여 Java 코드를 생성하면 더 많은 것을 얻을 수 있습니다. 유연성이 있지만 JSON 스키마가 변경되면 수동으로 변경해야 합니다.

위 내용은 Maven 프로젝트의 JSON 스키마에서 Java 클래스를 생성하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿