일부 Json을 가져 와서 키/값 쌍의 컬렉션으로 파싱하려고하지만 일부 값은 사전 자체가됩니다. 나는 평소 Newtonsoft 비 직렬화를 시도했다. 그것은 가깝지만 옳지 않습니다. 최종 결과는 강력한 형식의 클래스가 아닌 사전이어야합니다. "C# Json 개체 사전에
var json = File.ReadAllText(@"c:\temp\job.json");
var result = JsonConvert.DeserializeObject<Dictionary<string, object>>(json);
결과는 거의 정확하지만의 키를 사용하여 항목의 값 :
{
"JobNumber": 1010,
"Asset": null,
"JobNotes": [
{
"NoteText": "It's not working.",
"NoteType": "Complaint"
},
{
"NoteText": "Needs to be fixed",
"NoteType": "Job"
}
]
}
이 내가 역 직렬화하는 데 사용되는 코드는 다음과 같습니다
이
몇 가지 예를 JSON이다 JobNotes "는 json 문자열입니다. 나는 해석기가 문자열과 객체의 추가 사전에 내부 Json을 재귀 적으로 표현하고 소멸 시키길 원합니다. Newtonsoft 라이브러리에서이 작업을 수행 할 수있는 방법이 있습니까? 또는 트릭을 수행 할 다른 라이브러리가 있습니까? 해당 시점의 기능을 재정의하기 위해 파싱 메서드에 연결할 수 있습니까?
당신이 * 필요 *은'사전 <문자열, 개체> '또는 괜찮을 것 마십시오 역 직렬화 할 수 있습니다 강하게 입력 된 결과가 있습니까? – vzwick
'JobNotes'의 배열을 가지는 클래스를 강하게 입력하면 (자), 자동적으로 그 클래스를 해석해 콜렉션을 생성합니다. – TheVillageIdiot
JSON 문자열을 역 직렬화로 간주 했습니까? 이 질문을보십시오 : [JSON을 C# 동적 객체로 비순 서로 변환 하시겠습니까?] (https://stackoverflow.com/questions/3142495/deserialize-json-into-c-sharp-dynamic-object) – Ellesedil