설문 조사 응답을 위해 REST 웹 서비스에서 JSON이 반환됩니다. 그것은 일부 이름 값 쌍의 이름 부분에 대한 배열을가집니다. 또한 질문의 유형에 따라 이름이 달라질 수 있습니다. JSON.net을 사용하고 반환 된 값을 객체 트리 유형으로 deserialize하려고 시도했지만 걸을 수있는 구조가 무엇인지 알아낼 수 없습니다.변수 이름 배열을 사용하여 JSON을 비 직렬화
다음 스 니펫을에서 테스트했습니다. LinqPad와 필드는 항상 비어 있습니다. 변수 데이터를 쉽게 읽을 수 있나요? 아니면 코드에서 파싱해야합니까? 다음 배치됩니다
public class Response
{
public string id { get; set; }
public string status { get; set; }
public string datesubmitted { get; set; }
[JsonExtensionData]
public Dictionary<string, object> fields { get; set; }
}
이상한 속성 이름과 필드의 모든 :
void Main() {
string json = @"{
'result_ok':true,
'total_count':'51',
'data':[{
'id':'1',
'status':'Deleted',
'datesubmitted':'2015-01-12 10:43:47',
'[question(3)]':'Red',
'[question(4)]':'Blue',
'[question(18)]':12,
'[variable(\'STANDARD_IP\')]':'127.0.0.1',
'[variable(\'STANDARD_GEOCOUNTRY\')]':'United States'
}]
}";
var responses = JsonConvert.DeserializeObject<RootObject>(json);
responses.Dump();
}
public class RootObject {
public bool result_ok { get; set; }
public string total_count { get; set; }
public List<Response> data { get; set; }
}
public class Response {
public string id { get; set; }
public string status { get; set; }
public string datesubmitted { get; set; }
public List<object> fields = new List<object>();
}
내가 완전히 확실하지 않다, 그러나 그것은 심지어 나에게 유효한 JSON처럼 보이지 않는다. –
http://jsoneditoronline.org/ 및 .Net JSON 비주얼 라이저에서 문제를 해결하는 것으로 보입니다. –
일부 라이브러리는이를 처리 할 수 있지만 속성 이름 주위의 작은 따옴표는 사양을 벗어났습니다. 사양에는 큰 따옴표가 필요합니다. –