使用Json数据填充列表并从中获取对象

时间:2013-05-03 13:06:43

标签: c# json parsing json.net deserialization

我有一个php webservice,它从数据库中获取数据并将其作为json数据返回。

Json数据

{"faqs":
   [
        {"faq":{"id":"123"}},
        {"faq":{"id":"124"}}
   ]
}

对象类

public class FaqList
{
    public List<Faq> faqs { get; set; }
}
public class Faq
{
    public string id { get; set; }
}

测试类

var client = new HttpClient();
HttpResponseMessage response = await client.GetAsync(new Uri("http://www.mydomain.com/webservice/7/server.php"));
var jsonString = await response.Content.ReadAsStringAsync();

FaqList list = JsonConvert.DeserializeObject<FaqList>(jsonString);

list.faqs.Count() => 2
list.faqs[0].id   => NULL !!

我将所有对象填充到“列表”中。通过计数测试,我发现它已经填满了。但是如果我试图从中获取对象,我会得到null错误。

那么,我怎样才能正确填写我的列表,以便从中获取对象?

1 个答案:

答案 0 :(得分:0)

http://json2csharp.com/建议这些定义。 (还有一个班Faq2

public class Faq2
{
    public string id { get; set; }
}

public class Faq
{
    public Faq2 faq { get; set; }
}

public class RootObject
{
    public List<Faq> faqs { get; set; }
}