2013-02-17 1 views
1

json2csharp를 사용하여 json을 deserialize 할 수있는 멋진 C# 클래스를 생성했습니다.잘못된 json 필드 이름을 사용하여 필드의 이름을 바꾸고 매핑하는 방법

사실 json2csharp가 일부 필드 이름을 invalid_name으로 명명 한 것을 제외하고는 예상대로 작동합니다. 그 이름을 유효한 csharp 이름으로 변경했지만 직렬화 될 때 해당 클래스는 null입니다.

은 내가 답변자 중 하나는 다음과 같은 ...

때문에 일부의 이름으로 직접 작동하지 않습니다 염두에 을 내가 아래에 붙여 넣은 클래스를 유지했다 this other SO post를 ... 발견 json의 필드. 을 수동으로 이름을 바꾸고 매핑 할 수 있습니다.

정확하게이 문제는 내 문제를 설명합니다. 불행히도, 그 대답은 "지도를 만드는 방법"에 대한 단서를 제공하지 않습니다. 그래서 누군가가 json 배열을 C# 클래스에 수동으로 매핑하는 방법을 알려줄 수 있습니다.

RestSharp 디시리얼라이저, btw를 사용하고 있습니다.

아이디어가 있으십니까?

답변

6

기본 또는 JSON 구문 분석으로 JSON.NET을 사용하는 경우 속성의 이름을 바꾼 다음 특성으로 장식하여 원본 JSON 개체와 다시 정렬 할 수 있습니다.

예는 JSON에서 1이라는 C#에서 유효하지 않은 속성입니다. 당신은 클래스 수준에서 편집 할 경우

[JsonProperty("1")] 
public int? One { get; set; } 

또한 된 JSONObject 속성이있다, 또한 JsonIgnore 객체는 속성의 직렬화를 무시 : 이것은 다음을 사용하여 정정 할 수 있습니다.