JSON 과 대상 (매 거 진 대상) 간 의 상호 전환

7187 단어
최근 매 거 유형의 값 을 처리 할 때 많은 문제 가 발생 했 습 니 다. 지금 은 그들 을 기록 하 세 요. 첫째, 나중에 자신의 기억 을 강화 할 수 있 고, 둘째, 필 기 를 하 는 좋 은 습관 을 지 킬 수 있 습 니 다.참고 로 문 제 를 제기 하고 함께 토론 할 수 있 습 니 다.
문제 1: 실체 클래스 에서 매 거 진 형식의 필드 를 정의 하 는 방법 (코드 를 직접 올 리 는 방법)
/**
 *                
 * @author Administrator
 *
 */
public enum FromUnit {
    StateCouncil("     "),Scgovernment("        ") ;   //            (  ),        
    private String variName;
    private FromUnit(String variname){
        this.variName=variname;
    }
    @Override
    public String toString(){
        return this.variName;
    }

}

실체 클래스 StateCouncilFile 에서 문서 단위 필드 를 정의 합 니 다.
package com.gzydt.oa.governEntity;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import com.gzydt.oa.enumEntity.FileType;
import com.gzydt.oa.enumEntity.FromUnit;
import com.gzydt.oa.enumEntity.Serency;

/**
 *      ,    (    )
 * 
 * @author duanhongyan
 * @since 2015-4-2
 * 
 *
 */
@Entity
@DiscriminatorValue("StateCouncilFile")
public class StateCouncilFile extends GovernmentFile{

   
    private static final long serialVersionUID = -542044540670855189L;
    
    private String refNumber;//   
    
    @Enumerated(EnumType.STRING)
    @Column(length=50, nullable=true)
    private FromUnit fromUnit=FromUnit.StateCouncil;//     
   
   //            ,     
    @Enumerated(EnumType.STRING)
    @Column(length=50, nullable=true)
    private FileType fileTypeGuo = FileType.CoutryUrge;//     

    @Column(name = "sendFileDate")
    @Temporal(TemporalType.TIMESTAMP)
    private Date sendFileDate;//     

    @Column(name = "getFileDate")
    @Temporal(TemporalType.TIMESTAMP)
    private Date getFileDate;//     
    
   //            ,      
    @Enumerated(EnumType.STRING)
    @Column(length=50, nullable=true)
    private Serency serency = Serency.Common;//   
   
    
    private String theme;//    
    
    private long appendTextId;//     id
    
    private String appendTextName;//      

    public String getRefNumber() {
        return refNumber;
    }

    public void setRefNumber(String refNumber) {
        this.refNumber = refNumber;
    }

    
    public FromUnit getFromUnit() {
        return fromUnit;
    }

    public void setFromUnit(FromUnit fromUnit) {
        this.fromUnit = fromUnit;
    }

   
    public FileType getFileTypeGuo() {
        return fileTypeGuo;
    }

    public void setFileTypeGuo(FileType fileTypeGuo) {
        this.fileTypeGuo = fileTypeGuo;
    }

    public Date getSendFileDate() {
        return sendFileDate;
    }

    public void setSendFileDate(Date sendFileDate) {
        this.sendFileDate = sendFileDate;
    }

    public Date getGetFileDate() {
        return getFileDate;
    }

    public void setGetFileDate(Date getFileDate) {
        this.getFileDate = getFileDate;
    }

  
    public Serency getSerency() {
        return serency;
    }

    public void setSerency(Serency serency) {
        this.serency = serency;
    }
    
    

    public String getTheme() {
        return theme;
    }

 
    public void setTheme(String theme) {
        this.theme = theme;
    }

    public long getAppendTextId() {
        return appendTextId;
    }

    public void setAppendTextId(long appendTextId) {
        this.appendTextId = appendTextId;
    }

    public String getAppendTextName() {
        return appendTextName;
    }

    public void setAppendTextName(String appendTextName) {
        this.appendTextName = appendTextName;
    }
   
}

StateCouncilFile 이라는 실체 할당 (매 거 진 클래스) 의 값 을 할당 하 는 방식
 //         
    private void setState(JSONObject preceInfo, List appeFiles,StateCouncilFile entity) throws ParseException {
        
        entity.setRefNumber(preceInfo.optString("refNumber"));
        
        FromUnit fromUnit = null;
        FileType fileTypeGuo=null;
        SimpleDateFormat  formatter = new SimpleDateFormat("yyyy-MM-dd");
        Date sendFileDate=null;
        Date getFileDate=null;
         Serency serency=null;
        if(preceInfo.optString("fromUnit") != null && !"".equals(preceInfo.optString("fromUnit"))){
            fromUnit=FromUnit.valueOf(preceInfo.optString("fromUnit"));
        }
        if(preceInfo.optString("fileTypeGuo") != null && !"".equals(preceInfo.optString("fileTypeGuo"))){
            fileTypeGuo=FileType.valueOf(preceInfo.optString("fileTypeGuo"));
        }
        

그 다음 에 실체 클래스 대상 을 데이터베이스 에 지속 적 으로 저장 하고 조건 을 만족 시 키 는 실체 대상 을 조회 할 때 데 이 터 를 되 돌려 줄 때 json 대상 으로 이 실체 StateCouncilFile 을 되 돌려 줄 때 안의 매 거 진 형식의 필드 가 비어 있 습 니 다. 이때 우 리 는 json 데이터 와 대상 (매 거 진 클래스) 사 이 를 전환 해 야 합 니 다.다음은 두 가지 방식 이 있다.
json 과 대상 (매 거 진 대상) 의 전환 방식 1:
pom 파일 에 의존 도 추가:
	 
     com.google.code.gson
     gson
     2.3.1
       

그 다음 에 new Gson 대상 을 직접 만 들 고 조건 을 만족 시 키 는 실체의 list 집합 을 Gson 대상 의 toGson 방법 으로 대상 (예제 코드) 을 출력 합 니 다.
//  Gson          json       
        Gson gson=new Gson();
        String json=gson.toJson(messages);

json 과 대상 의 전환 방식 2: 이 방식 은 json 데 이 터 를 하나의 실체 대상 으로 직접 전환 시 켜 실체 중의 모든 필드 에 대한 끊 임 없 는 set 값 을 절약 하 는 방식 을 실현 할 수 있다.
pom 파일 에 의존 도 추가:
	 
     com.google.code.gson
     gson
     2.3.1
       

json 데 이 터 를 실체 대상 으로 전환 하 는 방식: 아래 뉴스 는 하나의 대상 이 고 preceInfo 는 전단 에서 들 려 오 는 New 대상 의 필드 값 입 니 다. mapper 의 readValue () 방법 을 직접 호출 하여 json 데 이 터 를 실체 대상 으로 전환 합 니 다.
//  jackson            
			ObjectMapper mapper=new ObjectMapper();
			mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, Boolean.TRUE);
			news= mapper.readValue(preceInfo.toString(), News.class);
			news = newsService.publish(news);

대상 (매 거 진) 을 json 데이터 로 변환 합 니 다:
   java  (   )  json   
            /*ObjectMapper mapper=new ObjectMapper();
            mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, Boolean.TRUE);
            String json=mapper.writeValueAsString(messages);
          String contentRange = String.format("items %d-%d/%d", from, to, count);

제 이 슨 대상 을 실체 로 바 꾸 는 방식
pom 파일 에 의존 도 추가:

			net.sf.json-lib
			json-lib
			2.4
			jdk15
		

좋은 웹페이지 즐겨찾기