我有不典型的JSON,我得到当请求使用用户名的个人资料(例如,在我展示将是,如果我查询什么username1
。如果有我的查询username2
,然后属性名称"field_set_key=\"profile\",username=\"username2\""
"UserProfileResource": {
"field_set_key=\"profile\",username=\"username1\"": {
"data": {
"profile": {
...
}
}
}
}
我不能简单地设置JsonProperty
一些名称,因为它是动态的。所以我需要以某种方式手动解析它。
是的,如果我知道请求的是什么配置文件(通过的用户名),这看起来很简单。
只是将 json 字符串解析为 some JObject
,构建该动态属性名称并使用LINQ to JSON获取它的值。
但是,如果我不知道请求的用户名,该怎么办?我可以field_set_key=\"profile\"
使用上面提到的 LINQ to JSON获取属性值,其中名称包含一些字符串(如)吗?
作为@ZoharPeled在评论说,我可以用使用JsonPath使用查询JSON SelectToken如所示查询JSON与SelectToken
var jObject = JObject.Parse(json);
var userProfile = jObject.SelectToken("UserProfileResource.*.data.profile").ToObject<UserProfile>();
在示例中,我JObject
使用SelectToken
. 如您所见,我还在那里使用了 JSONPath 表达式。
*
方法
通配符。所有对象/元素,无论其名称。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句