这里我有json字符串,我想从这个json字符串中获取一个特定的键和值。所以我使用了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'
该怎么做以及如何写出来。
答案 0 :(得分:0)
我假设你在这里使用一些SDK /你的自定义代码使用Facebook API。 JSON.NET是最好的方法,除非你不想最终陷入关键值配对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包提供。