- Java 객체에 저장된 값을 Json 형태로 변환하여 Request Body에 실어서 보내야 한다(이때 String 형 변수가 아닌 다른 형(ex : int 형)을 String 형태(쌍따옴표로 감싼 형태 : “123”)로 보내야 한다.
-
Java 객체에 저장된 값을 Json 형태로 변환하여 보낼때 선별적으로 보낼수 있어야 한다. (무슨뜻이냐면 Json으로 보낼때 모든 필드를 다 사용하는것이 아니라 특정 필드는 제외해서 사용할 수 있어야…)
-
Request의 Body로 온 Json 내용을 Java 객체로 매핑해서 이용한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
@JsonAutoDetect (fieldVisibility=Visibility.NONE, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE) @JsonPropertyOrder ({ "unit_id" , "unit_code" , "lvl" , "name" , "regDate" , "orders" , "imgPath" , "status" }) public class UnitVO extends CommonVO implements Cloneable { @JsonProperty ( "unitID" ) @JsonSerialize (using = ToStringSerializer. class ) int unit_id; @JsonProperty ( "unitCode" ) String unit_code; @JsonProperty ( "lvl" ) @JsonSerialize (using = ToStringSerializer. class ) int lvl; @JsonProperty ( "name" ) String name; @JsonProperty ( "regDate" ) String reg_date; @JsonProperty ( "orders" ) @JsonSerialize (using = ToStringSerializer. class ) int orders; @JsonProperty ( "imgPath" ) String img_path; @JsonProperty ( "status" ) @JsonSerialize (using = ToStringSerializer. class ) int status; int apistatus; String upper_unit_code; int subcnt; String statusdesc; String loginid; /* getter와 setter는 생략 */ } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import java.io.IOException; import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.JsonProcessingException; import org.codehaus.jackson.map.JsonSerializer; import org.codehaus.jackson.map.SerializerProvider; public class ToStringSerializer extends JsonSerializer<Object> { @Override public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { jgen.writeObject(value.toString()); } } |
1
2
3
4
5
6
7
8
9
|
@RequestMapping (value= "/group/{groupId}" , method=RequestMethod.POST) public ResultVO myUnit( @PathVariable ( "groupId" ) String unitCode, @RequestBody UnitVO objUnit, HttpServletRequest request ) throws Exception { .... } |
1
2
3
4
5
|
import org.codehaus.jackson.map.annotate.JsonFilter; @JsonFilter ( "filter properties by name" ) public class PropertyFilterMixIn { } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.map.ObjectWriter; import org.codehaus.jackson.map.ser.FilterProvider; import org.codehaus.jackson.map.ser.impl.SimpleBeanPropertyFilter; import org.codehaus.jackson.map.ser.impl.SimpleFilterProvider; UnitVO obj = service.getUnitVO(); String [] excludeFieldNames = { "name" }; ObjectMapper mapper = new ObjectMapper(); ObjectWriter writer = null ; if (excludeFieldNames != null ){ mapper.getSerializationConfig().addMixInAnnotations(Object. class , PropertyFilterMixIn. class ); FilterProvider filters = new SimpleFilterProvider().addFilter( "filter properties by name" , SimpleBeanPropertyFilter.serializeAllExcept(excludeFieldNames)); writer = mapper.writer(filters); } else { writer = mapper.writer(); } String jsonString = writer.writeValueAsString(obj); |