C# C# NewtonJson 역직렬화할 때 모델의 속성 이름을 변경하는 방법. (C# NewtonJson deserialize m…
페이지 정보
본문
서버 또는 설비로부터 아래와 같은 메세지를 받았는데요. 딱 봐도... C# 스럽지 않은 메세지 포멧입니다. 카멜 표기법이나 헝가리안 표기법이 아닙니다. 정체를 알 수 없는 혼종같은 메세지인데요. 아무튼, 이렇게 JSON 메세지를 받아서 직접 파싱해서 바인딩해도 되지만, 이건 상당히 귀찮은 작업이 됩니다.
{
"Equipment": "EQP001",
"Chamber": "EQP001_CH09",
"Mst_rawid": "1",
"MSPC_COMMENT": "RELOAD",
"Mscp_Model": "MODEL_TEST01",
"User_id": "ADMIN"
}
개발자는 아마도 아래와 같은 모델을 만들고 싶을겁니다. 그런데, 위 메세지를 아래 모델로 역직렬화(Deserialize)하면 Equipment와 Chamber를 제외한 나머지 속성(Property)들은 null로 데이타를 바인딩하지 못합니다. 이 때 속성(Property)의 특성(Attribute)으로 JsonProperty를 사용할 수 있습니다.
public class MspcReloadModel
{
public string Equipment { get; set; }
public string Chamber { get; set; }
public string MstRawid { get; set; }
public string MspcComment { get; set; }
public string MspcModel { get; set; }
public string UserId { get; set; }
}
아래와 같이 바인딩이 안되는 속성에 특성을 부여해줍니다. 정상적으로 역직렬화가 됩니다^^
public class MspcReloadModel
{
public string Equipment { get; set; }
public string Chamber { get; set; }
[JsonProperty("Mst_rawid")]
public string MstRawid { get; set; }
[JsonProperty("MSPC_COMMENT")]
public string MspcComment { get; set; }
[JsonProperty("Mscp_Model")]
public string MspcModel { get; set; }
[JsonProperty("User_id")]
public string UserId { get; set; }
}
이 글이 도움이 되셨다면~ 커피 한잔이라도 후원 부탁드립니다^^
개발자에게 후원하기
추천, 구독, 홍보 꼭~ 부탁드립니다.
여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~
감사합니다~
추천0 비추천0
- 이전글Removable Storage Devices 폴더 삭제 방법 22.05.25
- 다음글엑셀에서 다른 시트 하이퍼링크 만들기. (How to excel sheet make link?) 22.05.16
댓글목록
등록된 댓글이 없습니다.