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

时间:2014-03-22 00:17:29

标签: c# json schema json.net jsonschema

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

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

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

更新

模式可能随时发生变化,我需要能够动态处理,因此具体的类实现是不可能的。

2 个答案:

答案 0 :(得分:1)

经过更多的挖掘和与运行REST服务器的人交谈之后,显然我正在以这种方式变得更加困难。

最后,我需要的只是键/值对的字典,键是属性名称,值是模式中指定类型的某些数据。幸运的是,Json.NET完美地将它们转换为JSON。

答案 1 :(得分:0)

如果架构可能会发生变化,并且您不想每次都修改该类并编译代码,则可以使用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"