首页 > 解决方案 > 从 C# 中的 JSON 字符串中删除标记

问题描述

{"InvPhy":[{"OpID":234,"RtID":null,"AccID":5965,"LocID":7223,"DlvrLocID":7738,"InvAccID":31345,"FscDt":"2019-05-16T00:00:00","TrDT":"2019-09-19T18:13:17+05:30","Schdl":true,"CntType":661,"DvcID":56000,"SvcUID":0,"Dtls":[{"ProdID":48456,"ProdPkgID":84947,"TrDT":"2019-09-19T18:13:09+05:30","Qty":2},{"ProdID":32382,"ProdPkgID":61198,"TrDT":"2019-09-19T18:13:17+05:30","Qty":3}]}]}

我有这个 JSON,我需要删除属性 RtID。

JObject jo = JObject.Parse(jsonResult);
jo.Property("RtID").Remove();
jsonResult = jo.ToString();

这不起作用...请帮助

标签: c#json

解决方案


一种选择如下:

考虑您的对象具有以下 C#deserializeJSON

public class Dtl
{
    public int ProdID { get; set; }
    public int ProdPkgID { get; set; }
    public DateTime TrDT { get; set; }
    public int Qty { get; set; }
}

public class InvPhy
{
    public int OpID { get; set; }
    //public object RtID { get; set; }
    public int AccID { get; set; }
    public int LocID { get; set; }
    public int DlvrLocID { get; set; }
    public int InvAccID { get; set; }
    public DateTime FscDt { get; set; }
    public DateTime TrDT { get; set; }
    public bool Schdl { get; set; }
    public int CntType { get; set; }
    public int DvcID { get; set; }
    public int SvcUID { get; set; }
    public List<Dtl> Dtls { get; set; }
}

public class RootObject
{
    public List<InvPhy> InvPhy { get; set; }
}

您可以只删除该RtID属性,而不会删除该属性deserialize的值。

这是一个示例,说明您如何deserializeJSON对象进行操作。 Deserializing到一个对象还可以更容易地在其余代码中使用。

RootObject account = JsonConvert.DeserializeObject<RootObject>(json);

推荐阅读