gpt4 book ai didi

c# - 如何更新序列化动态 JSON 中的元素值

转载 作者:行者123 更新时间:2023-12-05 07:01:13 26 4
gpt4 key购买 nike

我在 .net(C#) 中有一个要求,我需要在 JSON 中发送动态类型的对象,并且需要将它更新到另一个 API,然后再次将它发送到另一个 API 进行处理。我很难将其反序列化为动态类型以更新其中一个属性。

我能够使用“RootElement.GetProperty()”获取值,但无法在 JSON 中设置任何值。

感谢您的帮助。

传递给 .net 核心 api 的 JSON 结构示例:

 {
"TaskId": "24332",
"Code": "Sample_code",
"Type": 1,
"Name": "New Product",
"Params": {
"Year": "2020",
"Filter": "LTH"
}
}

最佳答案

我建议使用 Newtonsoft 的原生对象 JObject、JArray 或 JToken。

例如,在您的情况下,如果要修改 Params 属性,您只需访问对象并添加/编辑属性:

string json = @"{'TaskId':'24332','Code':'Sample_code','Type':1,'Name':'New Product','Params':{'Year':'2020','Filter':'LTH'}}";

JObject jObject = JsonConvert.DeserializeObject<JObject>(json);

if (jObject["Params"] is JObject p) {
p.Add("ProductType", "Battery");
}

string newJson = JsonConvert.SerializeObject(jObject);

关于c# - 如何更新序列化动态 JSON 中的元素值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63923539/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com