고정 필드 이름을 가진 작은 고정 크기, 고정 된 구조를 직렬화 복원, JSON 문자열은 쉽게 변수 이름과 변수 크기 JSON 문자열을 역 직렬화하기 컴파일 타임에 알려짐).어떻게
반복되는 반복되는 중첩 된 쌍의 비 직렬화는 다소 어렵지만 클래스 내부의 List<>을 사용하여 수행 할 수 있습니다.
그러나 필드의이 컴파일 타임에 알려지지 않은 경우 어떻게해야합니까? 예 :
{
"container":{
"GD01AB491103":{
"field_id1":11,
"field_id2":12,
"field_id3":13,
"field_id4":"fourteen"
},
"DC01AB491103":{
"field_id1":21,
"field_id2":22,
"field_id3":23,
"field_id4":"twenty four"
},
"GH01AB451101":{
"field_id1":31,
"field_id2":32,
"field_id3":33,
"field_id4":"thirty four"
}
.
.
.
},
"terminator"
}
문자열을 역 직렬화하는 방법은 무엇입니까?
(바람직하게는 .NET의 JavaScriptSerializer하지만 그것은 불가능/너무 약한 경우, 내가 뭔가에 의지해야 할 수도 있음)
편집 : 위해, 위의 예에서 : 도전의 성격을 명확히하기 위해
public class ??????
{
public int field_id1 {get;set;}
public int field_id2 {get;set;}
public int field_id3 {get;set;}
public string field_id4 {get;set;}
}
내가 이러한 변수 이름의 클래스 객체와 런타임 빌드 클래스 (반사?)에서 다음 먼저 JSON 문자열을 조회해야하는 클래스를 정의? 너무 복잡 ... 아마도 더 온건 한 방법이 같은데?
아니면 클래스/필드 이름은 .NET의 JavaScriptSerializer 모든 문제와 관련이없는
는 유형입니까? 당신은 아마 더 간단하게 .. 당신의??????
클래스는 아무것도 할 수 있습니다 당신이 생각하는 것보다이 작업을 수행 할 수 있습니다
감사합니다. 이 과정을 간단하게 할 수있는 방법에 대한 나의 탐구에서 나는 주어진 JSON 문자열에서 C# 클래스 건물 자동화 된이 위대한 사이트 발견 :/: http://json2csharp.com/ –
사실을, 그것은 모두 [JSON.net] (http로 작동 /stackoverflow.com/a/1212115/562776) 및 .NET의 [JavaScriptSerializer (http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer%28v=vs.100% 29.aspx). –
그래, 유효한 시리얼 라이저와 독립적이어야한다. 내가 말한''터미네이터 ''엔트리는 유효한 JSON이 아니기 때문에 하나의 관심사였다.하지만 힌트 일 뿐이라면 괜찮을 것이다. FWIW 옵션이 있다면 (너무 미묘한 .net 제네릭) 성능상의 이유로 JavaScriptSerializer보다 JSON.net을 권하고 싶습니다. –