我有一个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实际上是等价的。