jsonconvert.deserializeobject c#数组

jsonconvert.deserializeobject c#数组,c#,json,C#,Json,我做不到。以下是JSON: 这是我的代码: using (var client = new WebClient()) { var url = string.Format("https://fipe-parallelum.rhcloud.com/api/v1/{0}/marcas/{1}/modelos", tipo_cb.SelectedValue, marca_cb.SelectedValue); //Download do resultado

我做不到。以下是JSON:

这是我的代码:

using (var client = new WebClient())
    {


        var url = string.Format("https://fipe-parallelum.rhcloud.com/api/v1/{0}/marcas/{1}/modelos", tipo_cb.SelectedValue, marca_cb.SelectedValue);
        //Download do resultado
        var json = client.DownloadString(url);
        List<Modelos> plist = JsonConvert.DeserializeObject<List<Modelos>>(json);

        foreach (Modelos data in plist)
        {

            modelo_cb.Items.Add(new ListItem(data.nome.ToString(), data.codigo.ToString()));

        }


    }

谢谢

问题在于数据模型与JSON不匹配。您的根JSON容器是一个对象(名称/值对的集合,用大括号括起来),而不是一个数组:
{“modelos”:[…]}
。这样的对象需要映射到非集合c#对象,如中所述。事实上,如果您只需将JSON链接发布到它,它将为您设计一个正确的数据模型:

public class Modelo
{
    public string nome { get; set; }
    public int codigo { get; set; }
}

public class Ano
{
    public string nome { get; set; }
    public string codigo { get; set; }
}

public class RootObject
{
    public List<Modelo> modelos { get; set; }
    public List<Ano> anos { get; set; }
}
公共类Modelo
{
公共字符串nome{get;set;}
public int codigo{get;set;}
}
公开课
{
公共字符串nome{get;set;}
公共字符串codigo{get;set;}
}
公共类根对象
{
公共列表模型{get;set;}

公共列表。

请发布JSON和您的模型的摘录,这样我们就可以真正确定错误,没有您的
JSON
,任何人都无法帮助。@daniel martins您想实现什么?JSON非常长。下面是链接:您的JSON有一个外部包装对象
{“modelos”:[…]
。您需要更改数据模型以反映这一点。如果我上载到正确的数据模型的链接,将生成该链接。
public class Modelo
{
    public string nome { get; set; }
    public int codigo { get; set; }
}

public class Ano
{
    public string nome { get; set; }
    public string codigo { get; set; }
}

public class RootObject
{
    public List<Modelo> modelos { get; set; }
    public List<Ano> anos { get; set; }
}
List<Modelo> plist;
using (var client = new WebClient())
{
    var url = @"https://fipe-parallelum.rhcloud.com/api/v1/carros/marcas/59/modelos";

    //Download do resultado
    var json = client.DownloadString(url);
    var root = JsonConvert.DeserializeObject<RootObject>(json);
    plist = root.modelos;
}