JSON 과 대상 (매 거 진 대상) 간 의 상호 전환
문제 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.