2012-05-14 13 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からキーベールペアを取得できません。私は '可能System.String' を入力するには 'System.Objectの' タイプの

オブジェクトと呼ばれる例外になっ

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

代わりの

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

書く場合

どのようにこれを行うには、どのように書かれることができます。

+0

よく...そのタイプは 'System.Object'です - あなたは何を期待していますか?そのキャスト作品ootb ?! ... nope ... '.ToString()'または他の変換はあなたの友人になります! –

+0

jsonを追加できますか? –

+0

辞書["paging"]。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文字列から1つのキーと値のペアを取得します。 – user1372329

+0

オブジェクトもkeyvalue =(オブジェクト)辞書["ページング"];ここでkeyvalueのオブジェクトとしてキーバレーのペアを取得します。しかし、私は文字列として私にエラーを投げて保存したい場合。 – user1372329

+0

私のコードを試しましたか? – naveen

関連する問題