我正在开发一个使用Wordpress V2 api提要的项目 它返回类似于以下内容的Json:
{
"link": "http://website.com.au/seabourns-antarctica-2/",
"title": {
"rendered": "Some Title"
}
}
我可以使用:
[JsonProperty(PropertyName = "link")]
public string Url { get; set; }
分配第一个,但我不确定是否有一种简单的方法来获取title.rendered
字符串。
以下内容对我不起作用:
[JsonProperty(PropertyName = "title.rendered")]
public string Title { get; set; }
答案 0 :(得分:0)
Title
不是多维数组。这是一个具有一个属性的对象
您可以为Title
定义一个类并使用它。
public class Obj
{
[JsonProperty(PropertyName = "link")]
public string Url { get; set; }
[JsonProperty(PropertyName = "title")]
public Title Title { get; set; }
}
public class Title
{
[JsonProperty(PropertyName = "rendered")]
public class Rendered { get; set; }
}
// Usage:
Console.WriteLine(obj.Url);
Console.WriteLine(obj.Title.Rendered);
由于对象是JSON中的键值关联数组,如果所有属性都是纯字符串,您也可以将其反序列化为Dictionary<string, string>
。此方法方法的可用性和便利性取决于使用情况和具体情况:
public class Obj
{
[JsonProperty(PropertyName = "link")]
public string Url { get; set; }
[JsonProperty(PropertyName = "title")]
public Dictionary<string, string> Title { get; set; }
}
// Usage:
Console.WriteLine(obj.Url);
Console.WriteLine(obj.Title["rendered"]);
请注意,在这种情况下,此代码将导致运行时错误:
Console.WriteLine(obj.Title["notexisting"]);
答案 1 :(得分:0)
你的课就像
public class Title
{
public string rendered { get; set; }
}
public class RootObject
{
public string link { get; set; }
public Title title { get; set; }
}
然后解析这个json你应该这样做
RootObject obj = JsonConvert.Deserailize<RootObject>("jsonString");