불행하게도 JSON 데이터를 처리해야하므로 필연적으로 json.net을 기본값으로 사용합니다. 여기서 나는 '설명서'거래를 독점적으로 단순한 예제로 발견했습니다.실세계 JSON 데이터 비 직렬화
내 데이터에는 다음과 같은 '인스턴스'가 들어 있습니다.
"team" : [{
"id" : "8",
"vendor-id" : "8",
"statsinc-id" : "8",
"team-name" : "",
"team-nickname" : "Pistons",
"rank" : ""
}, {
"id" : "51",
"vendor-id" : "29",
"statsinc-id" : "29",
"team-name" : "",
"team-nickname" : "Grizzlies",
"rank" : ""
}
]
이제는이 문자열/json 용어가 무엇이든 상관없이 많은 양의 다른 데이터가 있음을 명심하십시오.
세 가지 문제가 있습니다.
나는 설명서를 따르고 실제로 어떤 종류의 값을 내뱉을 수는 없었다. (나는 id 필드를 얻으려고했다).
'속성'에는 하이픈이 들어 있습니다. C#은 변수/속성 이름에 하이픈을 허용하지 않으므로 어떻게 처리합니까?
위의 인스턴스에는 두 개의 '속성'이 있습니다. 아마도 후자가 객체에서 전자를 덮어 쓰는 것입니다. 개체 목록이 필요하고 어떻게 든 순차적으로 값을 삽입하는 방법을 찾아야합니까?
미리 감사드립니다. 다른 대답이 팀의 배열 그들이 그렇게 말했다으로
[JsonProperty(PropertyName = "team-name")]
public string teamName { get; set; }
[JsonProperty(PropertyName = "team-nickname")]
public string teamNickname { get; set; }
: 당신 같은 당신의 속성을 표시 할 것입니다 당신에게 직렬화 복원 될 예정 클래스를 생성 2. 관련하여
아마 당신은 "불필요하게 복잡 전부"를 찾을 이유가 있기 때문에 당신의 질문은 JSON에 대한 오해를 잘 보여줍니다. "team"뒤에 오는 대괄호는 배열의 시작을 나타내므로 중복 항목은 중복되지 않으며 서로 다른 항목입니다. 비평하기 전에 좀 더 공부할 것을 권하고 싶습니다. w3c 사이트를 제안 해주세요 : http://www.w3schools.com/json/ ?? –
각 유형에 대한 기본 객체를 만든 다음 deserialize하는 데 사용할 수있는 더 큰 객체에 composition on을 사용합니다. 또한 Dictionary>>을 사용하여 시도해 볼 수 있습니다. 첫 번째 사전은 목록에 기본 객체를 매핑합니다. 목록에는 내부 객체에 매핑되는 여러 사전이 포함되어 있습니다. –
Carlos487