System.Text.Json合并两个对象 - c#

是否可以用System.Text.Json?合并两个这样的json对象

对象1

{
   id: 1
   william: "shakespeare"
}

对象2

{
   william: "dafoe"
   foo: "bar"
}

结果对象

{
    id: 1
    william: "dafoe"
    foo: "bar"
}

我可以用newtonsoft.json这样实现

var obj1 = JObject.Parse(obj1String);
var obj2 = JObject.Parse(obj2String);

obj1.Merge(obj2);
result = settings.ToString();

但是System.Text.Json有办法吗?

参考方案

从.Net Core 3.0开始,System.Text.Json尚未实现JSON对象的合并:

Merge上没有PopulateJsonDocument方法。
Merge上没有PopulateJsonSerializer方法。

通常,JsonDocument是只读的。它

提供一种机制来检查JSON值的结构内容,而无需自动实例化数据值。

因此,它并非旨在支持以任何方式修改JSON值,包括将另一个JSON值合并到其中。

当前存在一个增强请求,以实现可修改的JSON文档对象模型:
Issue #39922: Writable Json DOM。它具有关联的规范Writable JSON Document Object Model (DOM) for System.Text.Json。如果实施了此增强功能,则可以合并JSON文档。您可以添加一个要求与JContainer.Merge()等效的功能的问题,并作为前提条件链接回问题#39922。

.NET核心3:JsonPropertyName的序列化顺序(System.Text.Json.Serialization) - c#

迁移到.NET Core 3时,我已经从Newtonsoft.Json序列化切换到System.Text.Json.Serialization。在所有功能中,我想继续使用JsonPropertyName属性。Newtonsoft版本允许ordering of serialized attributes:[JsonProperty(Order = 1)] pu…

错误:无法将类型为“ System.Int32”的对象转换为类型为“ System.String”的对象 - c#

我已经完成了完美的编码注册页面,登录代码,现在UpdateCustomer页面有错误-背景信息:我正在使用Microsoft Access作为数据源 LabelState.Text = (string)Session["sState"]; LabelPostalCode.Text = (string)Session["sPost…

System.IdentityModel.Selectors.UserNamePasswordValidator不存在 - c#

Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以使溢出。 6年前关闭。 on-topic 我试图从System.IdentityModel.Selectors.UserNamePasswordValidator派生一个类。但是,如果我…

System.out.printf不打印整数参数 - java

我是Java编程的新手,无法从另一个类返回方法。这两个类都可以编译并成功运行。我可以从一个类中调用一个简单的int,但是当我想计算用户输入的两个输入整数时,我只会得到一个空格。这是我的计算课class calculations { public final int AGE = 53; public int numbers(int num1, int num2…

Java System.currentTimeMillis()问题 - java

因此,在我的java类中,我们进行了一项作业分配,以使用System.currentTimeMillis显示两次单击之间的时间。我已经尝试了很多,但是没有用。这是我的代码。 1 /* Matthew Caldwell 2 * September 21, 2011 3 * Homework #4: Problem 5.8.1 pg. 149 4 * Progr…