2017-07-10 4 views
0

Ich verwende Newtonsoft.json. Ich kann das Ergebnis einer Deserialisierung nicht verstehen. Bulletin.PageList wird in Ordnung gefüllt. Die Seite der Frage, die auf ein Element von PageList verweist, ist jedoch immer null. In den JsonSerializerSettings habe ich PreserveReferencesHandling.All angegeben, aber es hat nicht geholfen. Könnten Sie helfen, das Problem von null von Page zu lösen? DankeJSON. Ein Verweis deserialisiert auf null

JSON structure: 

"Bulletins": [ 
     { 
      "$id": "46b5efa80fe644d7bd525e2c30f5df8a", 
      "$type": "Bulletin", 
      "JSONNETTYPE": "Bulletin", 
      "PagesList": [ 
       { 
        "id": "4ed13d727cd144d1acf1e0c9bc273245", 
        "JSONNETTYPE": "PageView", 
        "Number": 1, 
        "Id": "1a2b8ed4249948e194b396c46a5d1eeb", 
        "UiId": "4ed13d727cd144d1acf1e0c9bc273245" 
       } 
      ], 
      "AgendaQuestions": [ 
       { 
        "$id": "eceb6fe6c74a40d59f0673b76bd6dbb3", 
        "$type": "QSimple", 
        "Page": { 
         "$ref": "46b5efa80fe644d7bd525e2c30f5df8a#PagesList.0" 
        } 
       } 
      ] 
}] 

C# Struktur:

public class Bulletin 
    {   
     public Bulletin() 
     {       
     } 

     public string Dbid { get; set; } 

     public List<PageView> PagesList; 

     public List<Question> AgendaQuestions; 
    } 

public abstract class Question 
    { 
     protected Question(int number, string customNumberLabel = null) 
     { 
      Number = number; 
      CustomNumberLabel = customNumberLabel; 
     } 

     public int Number { get; set; } 

     public string CustomNumberLabel { get; set; } 

     public PageView Page { get; set; }  
} 

public class PageView 
    { 
     public int Number { get; set; }  
     public string Id { get; set; }  
     public int BulletinNumber { get; set; }  
     public PageView() 
     {     
     }  
    } 
var settings = new JsonSerializerSettings 
{ PreserveReferencesHandling = PreserveReferencesHandling.All 

}

Antwort

0

Ich war mit dojox.json.ref Bibliothek. Wenn ich __id für Page festlege, werden Verweise auf Elemente von PagesList direkt, nicht komplex (wie 46b5efa80fe644d7bd525e2c30f5df8a # PagesList.0) und Seite wird gefüllt.

Verwandte Themen