Json 변환기 Gson의 실례 2 - Gson 주석과 Gson Builder

때때로 우리는 실체의 모든 속성을 내보낼 필요가 없고, 단지 일부 속성을 Json으로 내보낼 생각만 한다.
때때로 우리의 실체류는 버전의 업그레이드에 따라 수정될 수 있다.
때때로 우리는 출력된 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

좋은 웹페이지 즐겨찾기