从 Json 对象中删除子项

ankita25

我有一个序列化的 JsonObject,其中我必须从其子元素之一中删除除一个 json 元素或数组之外的所有元素。

{
"Index": "1",
"DoCID": "",
"Sin_id": "{xxxx}",
"Loan_LastModified": "2015-03-30T08:31:20-04:00",
"Col_1": null,
"col_2": null,
"ChildPair": [{
    "Index": 1,
    "Fields_35": "",
    "Fields_52": "",
    "Fields_1811": "PrimaryResidence",
    "Fields_4000": "discount point",
    "Fields_4077": null
}, {
    "Index": 2,
    "Fields_35": "",
    "Fields_52": "",
    "Fields_1811": "PrimaryResidence",
    "Fields_4000": "discount point",
    "Fields_4077": null
}, {
    "Index": 3,
    "Fields_35": "",
    "Fields_52": "",
    "Fields_1811": "PrimaryResidence",
    "Fields_4000": "discount point",
    "Fields_4077": null
},{
    "Index": 4,
    "Fields_35": "",
    "Fields_52": "",
    "Fields_1811": "PrimaryResidence",
    "Fields_4000": "discount point",
    "Fields_4077": null
}]

在 childPair 中,我需要删除除第一个索引之外的所有索引。请帮忙。谢谢

特里·伦诺克斯

如果我理解正确,这样的事情应该可行。我正在删除索引大于 1 的所有 ChildPair 对象。如有必要,可以更改谓词以执行类似的任务

class RootClass
{
    public string Index { get; set; }
 [JsonProperty(NullValueHandling=NullValueHandling.Ignore)]
    public string DoCID { get; set; }
    public string Sin_id { get; set; }
    public DateTime Loan_LastModified { get; set; }
    public object Col_1 { get; set; }
    public object col_2 { get; set; }
    public List<ChildPair> ChildPair { get; set; }
}

class ChildPair
{
    public int Index { get; set; }
    public string Fields_35 { get; set; }
    public string Fields_52 { get; set; }
    public string Fields_1811 { get; set; }
    public string Fields_4000 { get; set; }
    public object Fields_4077 { get; set; }
}

var json = @"{
                    ""Index"": ""1"",
                    ""DoCID"": """",
                    ""Sin_id"": ""{xxxx}"",
                    ""Loan_LastModified"": ""2015-03-30T08:31:20-04:00"",
                    ""Col_1"": null,
                    ""col_2"": null,
                    ""ChildPair"": [{
                        ""Index"": 1,
                        ""Fields_35"": """",
                        ""Fields_52"": """",
                        ""Fields_1811"": ""PrimaryResidence"",
                        ""Fields_4000"": ""discount point"",
                        ""Fields_4077"": null
                    }, {
                        ""Index"": 2,
                        ""Fields_35"": """",
                        ""Fields_52"": """",
                        ""Fields_1811"": ""PrimaryResidence"",
                        ""Fields_4000"": ""discount point"",
                        ""Fields_4077"": null
                    }, {
                        ""Index"": 3,
                        ""Fields_35"": """",
                        ""Fields_52"": """",
                        ""Fields_1811"": ""PrimaryResidence"",
                        ""Fields_4000"": ""discount point"",
                        ""Fields_4077"": null
                    },{
                        ""Index"": 4,
                        ""Fields_35"": """",
                        ""Fields_52"": """",
                        ""Fields_1811"": ""PrimaryResidence"",
                        ""Fields_4000"": ""discount point"",
                        ""Fields_4077"": null
                    }]}";

var res = JsonConvert.DeserializeObject<RootClass>(json);

res.ChildPair.RemoveAll(childPair => childPair.Index != 1);

如果你想跳过空属性(比如 DocID ),你可以尝试:

var output = JsonConvert.SerializeObject(rootObject, 
                        Newtonsoft.Json.Formatting.None, 
                        new JsonSerializerSettings { 
                            NullValueHandling =NullValueHandling.Ignore
                        });

如果为空,这将从输出中删除 DocID 或 Sin_Id。

.. 并从输出中删除 DocID 和 Sin_id,无论它们是否为空:

using Newtonsoft.Json.Linq;
JObject rootObject = JObject.Parse(json);

rootObject.Property("DoCID").Remove();
rootObject.Property("Sin_id").Remove();

var output = JsonConvert.SerializeObject(rootObject);

Console.WriteLine("Output: " + output);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

删除 JSON 子项

来自分类Dev

从JSON对象中删除键值对

来自分类Dev

从JSON数组中删除对象

来自分类Dev

删除单个json对象中的[]

来自分类Dev

如何从json中删除对象

来自分类Dev

如何删除JSON对象中的对象?

来自分类Dev

从JSON对象列表中删除对象

来自分类Dev

Angularjs 从 Json 对象中删除子对象

来自分类Dev

从 JSON 对象列表中删除对象类型

来自分类Dev

从json对象中删除json数组

来自分类Dev

从Powershell中的JSON对象中删除属性

来自分类Dev

删除对象数组中的所有子项

来自分类Dev

嵌套 json 中的子项总数

来自分类Dev

在 JSON DataSnapshot 中获取子项

来自分类Dev

搜索并从json数组中删除对象

来自分类Dev

从json对象中删除特定项目

来自分类Dev

删除对象数组中的JSON属性

来自分类Dev

JSON Stringify从对象中删除数据

来自分类Dev

从mongodb中的json删除空对象

来自分类Dev

如何删除json数组元素中的对象?

来自分类Dev

从JSON数组中删除重复对象

来自分类Dev

如何从json文件中删除对象

来自分类Dev

删除嵌套json响应python中的对象

来自分类Dev

在javascript(json对象)中删除localstorage的键值

来自分类Dev

从JSON数组中删除空对象

来自分类Dev

删除JSON对象中的匹配元素

来自分类Dev

按值从JSON对象中删除元素

来自分类Dev

Coffeescript:从json对象中删除重复的值

来自分类Dev

从json对象中删除重复项