2012-01-24 14 views
8

Mam JSON, że wracam, że potencjalnie odzyskuje wartości null jako część wartości. Jak mogę, a może nawet sposób, wyłączyć te wartości zerowe z kolekcji?Jak uzyskać json.net, aby wykluczyć wartości puste podczas deinstalowania kolekcji?

 { 
    "id": "5551212", 
    "from": { 
     "name": "Message creator", 
     "start_time": "2011-10-21T22:00:00", 
     "end_time": "2011-10-23T17:00:00", 
     "location": "area 51", 
     "id": "2121212122" 
    }, 
    "to": { 
     "data": [ 
      { 
       "name": "Jay-Z", 
       "id": "77777" 
      }, 
      { 
       "name": "Bill Murray", 
       "id": "88888" 
      }, 
      null, 
      { 
       "name": "Anthony Hopkins", 
       "id": "99999" 
      } 
     ] 
    }, 
    "message": "Some message from somewhere", 
    "updated_time": "2011-09-19T23:53:51+0000", 
    "unread": 1, 
    "unseen": 0 
    } 

Zawiadomienie między Billem Murrayem a Anthonym Hopkinsem o wartości null, która jest zwracana. Dzięki.

+0

Null nie ma sensu teraz? Wiadomości do mnie! – leppie

+0

Nigdy nie powiedziałem, że null nie ma znaczenia. Zgodnie z API tutaj (http://james.newtonking.com/projects/json/help/html/M_Newtonsoft_Json_JsonConvert_DeserializeObject__1_2.htm) można przekazywać ustawienia, aby uwzględnić lub zignorować wartości null. Opierając się na tym, powinien istnieć mechanizm do ich wykluczenia. –

+0

@leppie not serializing null lub puste tablice zmniejszą rozmiar dokumentu w bazach danych nosql, więc tak, to jest ważne – Korayem

Odpowiedz

12

Można po prostu ozdobić Properties/pola, które może być null z

[JsonProperty(NullValueHandling = NullValueHandling.Ignore)] 
public string Name { get; set; } 

Aby uzyskać więcej informacji o tym, jak zmniejszyć rozmiar json: http://james.newtonking.com/archive/2009/10/23/efficient-json-with-json-net-reducing-serialized-json-size.aspx

+0

Spróbuję. Wezmę głos, gdy tylko zacznę działać. –

+0

Pewnie. Jest to zalecany sposób według samego autora, jak wspomniano w poście na blogu – Korayem

+0

@ConwayStern czy to działa? – Korayem

-4

Chciałbym użyć metody convert, aby uzyskać ciąg znaków XML.

// jsonString is populated from your.... 
XmlNode xmlNode = JsonConvert.DeserializeXmlNode(jsonString); 

zerowa wartość w XML byłoby jak:

...<data></data>... 

które można łatwo usunąć poprzez wymianę strun lub filtrowanie XML.

+0

XML nie ma nic wspólnego z pytaniem OP. – Stewart

Powiązane problemy