反序列化Json遇到URL更改



我有一个Json字符串由facebook api返回,我想把它转换为一个对象,我尝试使用牛顿Json和JavaScriptSerializer。

https://graph.facebook.com/v1.0/1111111111111/comments?limit=25&after=NTAu00253D

转换为强类型对象或动态对象后,url将更改为

https://graph.facebook.com/v1.0/1111111111111/comments?limit=25&after=NTA%3D

这个问题的原因是什么?

我已经尝试了url编码和解码,但它没有工作

在JSON中,任何字符都可以用unicode转义序列表示,该转义序列定义为u后跟4个十六进制数字(参见JSON.org)。当对JSON进行反序列化时,每个转义序列将被实际的unicode字符替换。如果运行下面的示例程序,您可以自己看到这一点:

class Program
{
    static void Main(string[] args)
    {
        string json = @"{ ""Test"" : ""u0048u0065u006cu006cu006f"" }";
        Foo foo = JsonConvert.DeserializeObject<Foo>(json);
        Console.WriteLine(foo.Test);
    }
}
class Foo
{
    public string Test { get; set; }
}
输出:

Hello

在示例URL中,u0025表示%字符。这两个url实际上是等价的。

最新更新