1

ここで私はjson文字列を持っていて、このjson文字列から1つの特定のキーと値を取得したかったので、そのためにjavascriptシリアライザーを使用しました。以下は、C#.Net で使用したコードです。

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」へ

これに対して何をすべきか、どのように書くことができるか。

4

1 に答える 1

0

ここでは、SDK/カスタムコードを使用してFacebookAPIを使用していると想定しています。JSON.NETは、KeyValueペアの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パッケージとしても利用できます。

于 2012-05-14T06:46:12.130 に答える