Json 변환기 Gson의 실례 2 - Gson 주석과 Gson Builder
4800 단어 jsongsonGsonBuilder인스턴스
때때로 우리의 실체류는 버전의 업그레이드에 따라 수정될 수 있다.
때때로 우리는 출력된 json의 기본 형식을 맞추려고 합니다.
... ...
다음 예를 살펴보십시오.
솔리드 클래스:
import java.util.Date;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Student {
private int id;
@Expose
private String name;
@Expose
@SerializedName("bir")
private Date birthDay;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getBirthDay() {
return birthDay;
}
public void setBirthDay(Date birthDay) {
this.birthDay = birthDay;
}
@Override
public String toString() {
return "Student [birthDay=" + birthDay + ", id=" + id + ", name="
+ name + "]";
}
}
테스트 클래스:
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
public class GsonTest2 {
public static void main(String[] args) {
// Gson GsonBuilder, test1 Gson gson = new Gson();
Gson gson = new GsonBuilder()
.excludeFieldsWithoutExposeAnnotation() // @Expose
.enableComplexMapKeySerialization() // Map key
.serializeNulls().setDateFormat("yyyy-MM-dd HH:mm:ss:SSS")//
.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)// , : @SerializedName .
.setPrettyPrinting() // json .
.setVersion(1.0) // , , .
//@Since( ) . , ,
//@Until( ) ,GsonBuilder.setVersion(double) .
.create();
Student student1 = new Student();
student1.setId(1);
student1.setName(" ");
student1.setBirthDay(new Date());
// //////////////////////////////////////////////////////////
System.out.println("---------- -------------");
// bean json
String s1 = gson.toJson(student1);
System.out.println(" Bean Json===" + s1);
// json Bean
Student student = gson.fromJson(s1, Student.class);
System.out.println("Json Bean===" + student);
// //////////////////////////////////////////////////////////
Student student2 = new Student();
student2.setId(2);
student2.setName(" ");
student2.setBirthDay(new Date());
Student student3 = new Student();
student3.setId(3);
student3.setName(" ");
student3.setBirthDay(new Date());
List<Student> list = new ArrayList<Student>();
list.add(student1);
list.add(student2);
list.add(student3);
System.out.println("---------- List -------------");
// list json
String s2 = gson.toJson(list);
System.out.println(" list json==" + s2);
// json list
List<Student> retList = gson.fromJson(s2,
new TypeToken<List<Student>>() {
}.getType());
for (Student stu : retList) {
System.out.println(stu);
}
}
}
결과 출력:
---------- -------------
Bean Json==={
"Name": " ",
"bir": "2012-06-22 21:26:40:592"
}
Json Bean===Student [birthDay=Fri Jun 22 21:26:40 CST 2012, id=0, name= ]
---------- List -------------
list json==[
{
"Name": " ",
"bir": "2012-06-22 21:26:40:592"
},
{
"Name": " ",
"bir": "2012-06-22 21:26:40:625"
},
{
"Name": " ",
"bir": "2012-06-22 21:26:40:625"
}
]
Student [birthDay=Fri Jun 22 21:26:40 CST 2012, id=0, name= ]
Student [birthDay=Fri Jun 22 21:26:40 CST 2012, id=0, name= ]
Student [birthDay=Fri Jun 22 21:26:40 CST 2012, id=0, name= ]
Json 변환의 이점 Gson의 실례 1 - 간단한 대상 변환과 일반적인 List 변환(http://blog.csdn.net/lk_blog/article/details/7685169) Json 변환기 Gson의 실례 2 - Gson 메모와 Gson Builder(http://blog.csdn.net/lk_blog/article/details/7685190) Json 변환기 Gson의 실례 3 - 맵 처리(상)(http://blog.csdn.net/lk_blog/article/details/7685210) Json 변환기 Gson의 예 4 - 맵 처리(하)(http://blog.csdn.net/lk_blog/article/details/7685224) Json 변환기 Gson의 실례 5 - 실제 개발에서의 특수 수요 처리(http://blog.csdn.net/lk_blog/article/details/7685237) Json 변환기 Gson의 실례 6 - TypeAdapter 등록 및 Enum 유형 처리(http://blog.csdn.net/lk_blog/article/details/7685347)
인스턴스 코드 다운로드:http://download.csdn.net/detail/lk_blog/4387822
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
콘텐츠 SaaS | JSON 스키마 양식 빌더Bloomreach Content를 위한 JSON Form Builder 맞춤형 통합을 개발합니다. 최근 Bloomreach Content SaaS는 내장 앱 프레임워크를 사용하여 혁신적인 콘텐츠 유형 필드를 구축할...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.