【发布时间】:2022-01-17 14:54:07
【问题描述】:
我有一个 json 传入,我想仅在属性值与特定字符串匹配时反序列化为 Class。 例如: 我的 json 是:
[
{
"string1": "a";
"string2": "b";
"string3": "c";
isActive: true
},
{
"string1": "d";
"string2": "e";
"string3": "f";
isActive: false
}
]
我的班级是:
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 类的对象。
如您所见,我有一个包含两部分的 json 数组。仅当 isActive == false 时,我才需要反序列化到类中。
知道这是怎么可能的吗?(除了操作传入的 json 字符串)
【问题讨论】:
-
如果不反序列化就无法检查 isActive。您必须在后期处理中进行。
-
您可能会反序列化一个片段(在这种情况下是您的 IsActive),然后决定反序列化整个事物。 newtonsoft.com/json/help/html/SerializingJSONFragments.htm
标签: c# json json.net deserialization json-deserialization