2012-05-14 40 views
1

這裏我有json字符串,我想從這個json字符串獲得一個關鍵字和值。所以我已經使用了JavaScript序列化程序。 下面是我在C#.Net中使用的代碼。如何將json對象轉換成字符串

string strProfile = fbApi.GetForStr("/statefarm/feed/"); 
var jss = new JavaScriptSerializer(); 
var dictionary = (IDictionary<string, object>)jss.DeserializeObject(strProfile); 
object keyvalue = (object)dictionary["paging"]; 
string data = keyvalue.ToString(); 

當我這樣做時,我無法從jsonstring中獲取keyvale對。如果我寫

string keyvalue = (string)dictionary["paging"]; 

,而不是

object keyvalue = (object)dictionary["paging"]; 
string data = keyvalue.ToString(); 

越來越名爲類型的

對象System.Object的'輸入 'system.string' 例外

該怎麼做以及如何寫入。

+0

那麼......它的類型是'System.Object' - 你期望什麼?演員陣容是否適合? ... nope ...'.ToString()'或任何其他轉換將成爲你的朋友! –

+0

你可以加入json嗎? –

+0

你試過字典[「分頁」]。toString()或類似的東西嗎? – dutt

回答

0

我假設您在這裏使用的是使用SDK /您的自定義代碼的Facebook API。 JSON.NET是最好的方法,除非你不想最終成爲Key Value配對JSON的邪惡混亂。

試試這個。

var api = new FacebookClient 
{ 
    AccessToken = accessToken, 
    AppId = AppID, 
    AppSecret = AppSecret 
}; 
dynamic result = api.Get("me/posts"); 
string JsonConvert.SerializeObject(result, new KeyValuePairConverter()) 

或爲了避免混淆,簡單地添加到您的代碼

object keyvalue = (object)dictionary["paging"]; 
JsonConvert.SerializeObject(keyvalue , new KeyValuePairConverter()); 

NewtonSoft.Json.dll也可作爲一個NuGet包。

+0

是的naveen在這裏我正在使用Facebook API的下載數據是在JSON格式的工作正常。但我想從JSON字符串,這是不能正常工作得到一個鍵值對。 – user1372329

+0

也對象keyvalue =(object)dictionary [「paging」];在這裏keyvalue獲取鍵值對作爲一個對象。但如果我想存儲爲一個字符串,它會拋出一個錯誤。 – user1372329

+0

你有沒有試過我的代碼? – naveen

相關問題