当前位置: 首页 > 面试题库 >

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

解沈义
2023-03-14
问题内容

我当前正在使用以下扩展方法来执行此任务,但似乎应该有一些现有的包含方法或扩展来执行此操作(或至少其中一部分)。如果 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;
    }
}

我可以确认上面的代码可用于基本用法,但是我不确定它能否在更广泛的使用范围内发挥作用。

我让此扩展名返回a的原因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";

请参阅小提琴以获取更多详细信息



 类似资料:
  • 我已经看到了这个答案,并且正在使用它所建议的解决方案,但仍然得到相同的错误。 我有一个对用户表有外键约束的代理表,这是代理表: 这是我的实体: 现在,我想为现有用户添加一个新代理: <代码>\u上下文。SaveChanges() 行引发以下异常: "无法添加或更新子行:外键约束失败(\"dbName\".\"agent\", CONSTRAINT\"FK_Agency_User\"FOREIGN

  • 这是我使用Thymeleaf模板的代码 正在生成: 我希望每个复选框都在一行中。在普通的纯HTML中,我会使用<代码>

  • 有没有人尝试过使用Jenkins REST/API或任何其他方式在Jenkins Slave的配置中添加或更新环境变量。 使用Jenkins Swarm插件,我创建了一个slave(它使用JLNP连接到Jenkins master),但是环境变量(复选框没有勾选),并且Swarm client jar没有创建环境变量(默认情况下)。用户可以手动添加if reqd,但我正在寻找是否有一种方法来添加/

  • 我正在尝试在现有列表中添加一个新项目,但无法添加。当我调试时,它显示返回为true,但最终新项没有添加到列表中。 我的示例代码如下:雇员雇员1=新雇员(5001,BOB,financeDept.getDepartment_name());雇员雇员2=新雇员(5002,SAM,financeDept.getDepartment_name());雇员雇员3=新雇员(5003,SAM,hrDept.ge

  • 问题内容: 使用javascript,如何将查询字符串参数添加到url(如果不存在)或如果存在,则更新当前值?我正在使用jquery进行客户端开发。 问题答案: 我编写了以下函数来实现我想要实现的功能:

  • 如何更新JSONB以将新键添加到所有记录的嵌套数组(用于数组的所有项目)中。 我指的是表结构的链接: 给定的json是: 要将新元素添加到每个数组项中,请执行以下查询: 执行上述查询后输出: 但是上面只会在id=1的地方更新json。对于orders中的所有行,需要进行哪些更改才能更新与上述相同的JSON?