2012-09-11 23 views
1

如何反转JToken值?我有一个JToken作为输入,需要将JToken作为输出。如何反转JSON JTOKEN c#

A可以做 “jtoken.Reverse()”,但这个方法返回JToken的IEnumerable<JToken>

例子:

{ 
    "response": [ 
    { 
     "body": "steel", 
     "can_fly": 1, 
     "hover": 1 
    }, 

....很多很多的项目

+0

什么类型是你的'jtoken'?它可能是一些集合,不仅仅是一个简单的'JToken' ...你的例子是没有用的,因为它是JSON,即使你的问题是关于一个JSON库,完全不相关。 – ThiefMaster

+0

请参阅编辑 – SevenDays

+0

显示将值分配给您的'jtoken'的代码。 – ThiefMaster

回答

2

这个返回值意味着Reverse()不创建一个新的数组(或者你的​​是什么类型的集合),而是一个将以相反顺序产生元素的迭代器。

如果你只需要遍历令牌那么这样做:

IEnumerable<JToken> reversed = jtoken.Reverse(); 
foreach(var token in reversed)` { 
    // do stuff; token is a JToken here 
} 
+0

我有一个期望的方法(JToken源),我不能改变这个方法,它被许多函数使用。 – SevenDays

+0

hmm.you是对的,我也通过foreach和所有工作改变了int的主循环,thaks。 – SevenDays

1

你可以使用:

JToken reversed = new JArray(jToken.Reverse()); 
+0

对不起,无法将两个答案都标记为已接受:( – SevenDays

+0

无法将Newtonsoft.Json.Linq.JObject添加到Newtonsoft.Json.Linq.JObject。 – SevenDays

+0

已编辑 - 尝试使用新的JArray – Tevin