簡體   English   中英

如何根據屬性值有條件地反序列化 json

[英]How to conditionally deserialize a json based on the property value

我有一個 json 傳入,我想反序列化到 Class 僅當屬性值與特定字符串匹配時。 例如:我的 json 是:

[
{
"string1": "a";
"string2": "b";
"string3": "c";
isActive: true
},
{
"string1": "d";
"string2": "e";
"string3": "f";
isActive: false
}
]

我的 Class 是:

public class InboundJson
{
    public string string1 { get; set; }
    public string string2 { get; set; }
    public string string3 { get; set; }
    public bool isActive { get; set; }
}

InboundJson jsonobj = JsonConvert.DeserializeObject<InboundJson>(result);

這工作正常並將傳入的 json 轉換為 InboundJson class 的 object。

如您所見,我有一個包含兩部分的 json 陣列。 僅當 isActive == false 時,我才需要反序列化到 class。

知道這怎么可能嗎?(除了操縱傳入的 json 字符串)

知道這怎么可能嗎?

這是不可能的。

正如@PalleDue 所說,您可以使用.Where()子句在反序列化后進行

List<InboundJson> jsonobj = JsonConvert.DeserializeObject<List<InboundJson>>(result);

var result = jsonobj.Where(x => x.isActive);

暫無
暫無

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

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