2012-09-11 49 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