是否可以用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
上没有Populate
或JsonDocument
方法。Merge
上没有Populate
或JsonSerializer
方法。
通常,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 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…