生成数据以匹配JSON模式与JSON.NET

本文关键字:JSON 模式 NET 数据 | 更新日期: 2023-09-27 17:51:14

我是Json.NET的初学者。我已经非常擅长使用JsonConvert对典型对象进行序列化和反序列化,但仅此而已。所以这可能是一个愚蠢的问题。

我的程序从REST服务器接收JSON模式。我使用这个模式生成用户可以在其中填写数据的UI。然后我需要打包用户数据并将其发送回REST服务器。该数据必须与原始模式匹配。我还没有完全弄清楚如何将我的数据序列化成一种格式,这种格式将被我最初收到的模式视为有效。

提前感谢,如果这是一个愚蠢的问题,我道歉。

:

模式可以在任何时候改变,我需要能够在飞行中处理它,所以一个具体的类实现是不可能的。

生成数据以匹配JSON模式与JSON.NET

在深入挖掘并与运行REST服务器的家伙交谈之后,显然我使这种方式比需要的更困难。

最后,我所需要的只是一个键/值对的字典,键是属性名,值是模式中指定类型的一些数据。幸运的是,Json。

如果模式可以更改,并且您不想每次都修改类并编译代码,您可以使用dynamic/ExpandoObject。

序列化的例子:

dynamic foo = new ExpandoObject();
foo.Bar = "something";
string json = Newtonsoft.Json.JsonConvert.SerializeObject(foo);

反序列化的例子:

dynamic foo = JObject.Parse(jsonText);
string bar = foo.Bar; // bar = "something"