繁体   English   中英

JSON模式识别

[英]JSON pattern recognition

假设我有一个JSON请求主体req1 ,它导致了JSON响应resp1 ,一些人的键值是相同的那些req1 现在假设我有另外一个JSON请求req2 ,我想构建一个JSON响应resp2这是一个重复的resp1 ,但其共同的键有取代从值的值req2

可以使用什么策略来解决这个问题?

作为一个具体示例,假设req1是这样的:

{"Name":"Alan"}

并假设这是resp1

{"output":{"Name":"Alan", "Cat": "12"}}

注意, "Name":"Alan"出现在两者中。

如果req2是这样的:

{"Name":"Bancorp"}

然后,我resp1这样从resp1创建resp2

{"output":{"Name":"Bancorp", "Cat": "12"}}

至关重要的是, req*resp*的文档结构是事先未知的 ,唯一的知识是req1req2的结构相似,对于resp1resp2同样。

换句话说,我正在寻找一种灵活的模式识别,该模式识别将通过识别两个字段中都出现的字段从初始req1 / resp1对中“学习”,然后能够通过进行适当的替换来响应将来的req*输入复制到resp1

这已经存在吗? 如果没有,如何在JSON.Net实现?

我会先将您的请求反序列化为单独的对象。 然后,您可以使用反射来获取每个对象的所有属性的列表,并过滤结果以仅显示公共属性。

obj.GetType().GetProperties();

在响应对象中拥有所需属性的列表之后,您可以创建一个新的ExpandoObject并动态添加所需的属性和相应的值。

dynamic x = new ExpandoObject();
x.NewProp = string.Empty;

完成后,您可以将该响应对象序列化回JSON。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM