网络核心中的动态JSON解析

时间:2019-04-12 08:02:20

标签: c# json .net-core

我们也有N个JSON参数和类属性,但是 必须动态删除序列化时类属性中不可用的JSON参数。

如果我使用[JsonIgnore],它只是删除值,而不是整个属性;我们需要删除整个属性。

示例:

JSON请求:

{
    "Name":"ABC",
    "Age":26,
    "Designation":"Er",
    "Place":"Pune",
    "Gender":"Male"
}

班级:

[Serializable]
public class SampleProperties
{
    [JsonProperty("Name")]
    public string Name { get; set; }
    [JsonProperty("Age")]
    public int Age { get; set; }
    [JsonProperty("Designation")]
    public string Designation { get; set; }
}

预期结果:

{
    "Name":"ABC",
    "Age":26,
    "Designation":"Er"
} 

2 个答案:

答案 0 :(得分:3)

您可以像在Newtonsoft.Json的documentation或此link中看到的以下代码一样设置NullValueHandling,此外,您可以使用{{1 }},如您在此link

上看到的
ExpandoObject()

有关ExpandoObject

的更多信息

答案 1 :(得分:0)

执行此操作的最佳方法是创建一个具有30个字段的对象,并将json字符串反序列化为该对象
尝试这样的事情:

class MyObject
{
    public string prop1 {get;set; }
    public string prop2 {get;set; }
}

然后:

string json = "your json";
MyObject objectWith30Fields = JsonConvert.DeserializeObject<MyObject>(json);