[英]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*
的文档结构是事先未知的 ,唯一的知识是req1
和req2
的结构相似,对于resp1
和resp2
同样。
换句话说,我正在寻找一种灵活的模式识别,该模式识别将通过识别两个字段中都出现的字段从初始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.