簡體   English   中英

使用JSON.NET反序列化的自定義null處理

[英]Custom null handling with JSON.NET deserialization

我有以下JSON:

[
    {
      "ID": "Test1234",
      "Child": {
        "ID": "NULL"
      }
    },
    {
      "ID" : "Test1235",
      "Child": {
         "ID" : "Test1234"
      }
    }
]

我將此映射到以下C#類:

[JsonObject]
public class MyExample
{
    string ID;
    MyExample Child;
}

它有兩個對象,它們為父/子關系建模。 第一個對象Test1234不應有Childnull )。 取而代之的是,json.net(正確地)將Child反序列化為ID為“ NULL”的MyExample對象。 這是我想要的行為:

var myObjects = JsonConvert.DeserializeObject<List<MyExample>>(jsonText);
Assert.AreEqual("Test1234", myObjects[0].ID);
Assert.IsNull(myObjects[0].Child);

Assert.AreEqual("Test1235", myObjects[1].ID);
Assert.AreEqual("Test1234", myObjects[1].child.ID);

有沒有一種簡單的方法可以指定屬性的空處理? 這是在我正在使用的API中表示空值的默認方式,並且我還有其他(相關)類都可以通過這種方式工作。

您也許可以編寫自定義代碼來檢測ID為NULL的時間,只需將Child分配為NULL。 這非常簡單,只需幾行代碼。 像這樣:

if (myObject.child.ID == NULL)
{
    myObject.child = NULL;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM