gpt4 book ai didi

c# - 如何在 JObject 中添加或更新 JProperty 值

转载 作者:可可西里 更新时间:2023-11-01 03:06:45 27 4
gpt4 key购买 nike

我目前正在使用以下扩展方法来执行此任务,但似乎应该有一些现有的包含方法或扩展来执行此任务(或至少是其中的一个子集)。如果 Json.NET 中没有任何内容,那么推荐的过程是什么,或者我将如何更改下面的代码以更接近推荐的过程。

public static partial class ExtensionMethods
{
public static JObject SetPropertyContent(this JObject source, string name, object content)
{
var prop = source.Property(name);

if (prop == null)
{
prop = new JProperty(name, content);

source.Add(prop);
}
else
{
prop.Value = JContainer.FromObject(content);
}

return source;
}
}

我可以确认上面的代码适用于基本用途,但我不确定它在更广泛的用途中的表现如何。

我让此扩展程序返回 JObject 的原因是您可以链接调用(多次调用此扩展程序或其他方法和扩展程序)。

即,

var data = JObject.Parse("{ 'str1': 'test1' }");

data
.SetPropertyContent("str1", "test2")
.SetPropertyContent("str3", "test3");

// {
// "str1": "test2",
// "str3": "test3"
// }

最佳答案

如@dbc 在评论中所述,您可以简单地使用索引器来实现这一点。

var item = JObject.Parse("{ 'str1': 'test1' }");

item["str1"] = "test2";
item["str3"] = "test3";

参见 fiddle了解更多详情

关于c# - 如何在 JObject 中添加或更新 JProperty 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30085926/

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