문제

다음 코드와 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를 살펴보십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top