【发布时间】:2015-03-01 04:41:29
【问题描述】:
使用 Newtonsoft.Json 如何将 JSON 对象转换为以 Path 为键的字典?
IDictionary<string, object> FlattenJson(string Json)
{
JToken Input = JToken.Parse(Json);
... magic ...
return Result;
}
字典的键应为 JToken.Path 值,字典的值应为其“本机”格式的实际值(字符串为字符串,整数为长整数等)。
"message.body.titles[0].formats[0].images[0].uri" => "I/41SKCXdML._SX160_SY120_.jpg" "message.body.titles[0].formats[0].images[0].widthPx" => 0 “message.body.titles[0].customerReviewsCollectionIncluded”=> 假 ...
有什么开箱即用的东西适用于任意 JSON 吗?
【问题讨论】:
-
我不认为有任何开箱即用的东西可以做到这一点。您确定 JToken.Path 是唯一的,以便您可以将其用作键吗?
-
@Jacob - 我不认为这是重复的。该答案不会处理数组,并使用稍微不同的方案来定义关键文本。