jsonconvert.deserializeobject의 json.net 문제
-
20-09-2019 - |
문제
다음 코드와 JSON이 있습니다.
public class Labels
{
public Labels()
{}
public Label[] Label {get;set;}
}
public class Label
{
public Label()
{ }
public string Name { get; set; }
public int TorrentsInLabel { get; set; }
}
//...
Labels o = JsonConvert.DeserializeObject<Labels>(json);
//...
{"label":
[
["seq1",1]
,["seq2",2]
]}
이 배열 [ "Seq1", "1"]이 레이블 객체로 실시되기를 원합니다. 내가 무엇을 놓치고 있습니까? 일부 속성?
실행하면 예외를 얻을 수 있습니다 : 'test_jsonnet.label'유형에 대한 JSONARRAYCONTRATION은 'newTonSoft.json.serialization.jsonObjectContract'를 얻었습니다.
TNX
GG
해결책
기본적으로 클래스는 클래스의 속성이 JSON 객체의 속성이되는 JSON 객체로 직렬화됩니다.
{
Name: "seq",
TorrentsInLabel: 1
}
JSON.NET 시리얼 라이저가 기본적으로 작동하지 않는 배열로 직렬화하려고합니다.
원하는 것을 얻으려면 JSONCONVERTER를 만들고 JSON을 읽고 써서 레이블을 수동으로 작성하여 원하는 것 (배열)이 되십시오.
다른 팁
JsonConvert는 "SEQ1"이 이름에 해당하고 "1"이 TorrentsInlabel에 해당한다는 것을 어떻게 알 수 있습니까? JsonObjectAttribute, jsonPropertyAttribute, jsonArrayAttribute를 살펴보십시오.
제휴하지 않습니다 StackOverflow