c# - 在测试方法中从 JSON 文件中删除元素

标签 c# json file testing

我有一个 JSON 文件,如下所示,我想删除其中的一行/元素,特别是“FinanceDetails[LoanAmount]”。我该如何用 C# 编写这个代码。

"IntegratorID": "e20a5569-8e63-42ca-9f33-872d826276d0",
  "CorrelationID": "00000000-0000-0000-0000-000000000000",
  "ProposalID": 0,
  "Stage": "DECISION",
  "Request": "SendProposal",
  "PropertyValues": {
    "ExternalReference": "Integrator Reference",
    "ProposalType": "Private Individual",
    "Dealer[DealerID]": "9344",
    "FinanceDetails[Type]": "PCP",
    "FinanceDetails[CashDeposit]": "111",
    "FinanceDetails[Settlement]": "11",
    "FinanceDetails[PartExchange]": "22",
    "FinanceDetails[Term]": "72",
    "FinanceDetails[APR]": "12.9",
    "FinanceDetails[LoanAmount]": "0",
    "FinanceDetails[AnnualMileage]": "40000"
}

这是我目前拥有的,但不起作用。

public static void RemoveLineRequest(string fieldName)
{
    string sendProposalRequestSuccess = File.ReadAllText(sendProposalJSONFile);
    dynamic jsonObj = JsonConvert.DeserializeObject(sendProposalRequestSuccess);
    string output = jsonObj["PropertyValues"][fieldName];
    string finaloutput = JsonConvert.SerializeObject(output, Formatting.Indented);
    File.WriteAllText(sendProposalJSONFile, finaloutput);
}

最佳答案

不要反序列化为动态,使用JObject (请参阅
Modifying JSON
文档):

var jsonObject = JsonConvert.DeserializeObject<JObject>(sendProposalRequestSuccess);
var propValues = (JObject)jsonObject["PropertyValues"];
propValues.Remove("FinanceDetails[LoanAmount]");

关于c# - 在测试方法中从 JSON 文件中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73361024/

相关文章:

javascript - 我如何识别 Rails Controller 返回的 JS 中的空 JSON 对象?

json - API(几乎)与 GoLang 的 RESTFul 变量响应

Delphi:检查文件是否正在使用

java - 使用 JFileChooser 获取目录中的所有文件名?

c# - 将以度为单位的角度转换为矢量

javascript - JsonConvert.SerializeObject 不会将我的对象序列化为 JSON 字符串

c# - 将按钮可见性设置为隐藏的错误代码

php - 如何在php中检查文件是否为视频类型?

c# - 如何在 UWP 中显示 MJPEG 流

c# - C#XNA SoundEffect.FromStream