如何将json对象转换为字符串

时间:2012-05-14 06:26:55

标签: c#

这里我有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'

该怎么做以及如何写出来。

1 个答案:

答案 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包提供。