- 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); |