Json 使用web api:不起作用

Json 使用web api:不起作用,json,asp.net-mvc-4,asp.net-web-api,Json,Asp.net Mvc 4,Asp.net Web Api,有人能帮我一下吗,我正试图返回一个类别列表,但结果是空的。有人知道为什么吗 控制器网络: public ActionResult MontaEstruturaCategoria() { ViewBag.Estilo = "none"; HttpClient client = new HttpClient(); client.BaseAddress = new Uri(ConfigurationManager.AppSettings

有人能帮我一下吗,我正试图返回一个类别列表,但结果是空的。有人知道为什么吗

控制器网络:

    public ActionResult MontaEstruturaCategoria()
    {
        ViewBag.Estilo = "none";

        HttpClient client = new HttpClient();
        client.BaseAddress = new Uri(ConfigurationManager.AppSettings["UrlAPI"]);
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        var id = Session["UserId"];

        var url = "api/categoria/" + id;

        HttpResponseMessage response = client.GetAsync(url).Result;

        if (response.IsSuccessStatusCode)
        {
            var categoria = response.Content.ReadAsAsync<IEnumerable<Categoria>>().Result;

            return PartialView("ListaCategoria", categoria);
        }
        else
        {
            string msg = response.IsSuccessStatusCode.ToString();
            throw new Exception(msg);
        }
    }
JSON返回WEB API:

        [{"$id":"1","intCategoriaId":2,"strCategoriaNome":"Receitas","intCategoriaPaiId":0,"intCategoriaOrdem":2,"intUsuarioId":1,"Usuario":{"$id":"2","intUsuarioId":1,"strUsuarioNome":"Jose Henrique Borges da Costa Filho","strUsuarioEmail":"jose.costa@unidax.com.br","strUsuarioSenha":"1","Categoria":[{"$ref":"1"},{"$id":"3","intCategoriaId":3,"strCategoriaNome":"Salario","intCategoriaPaiId":0,"intCategoriaOrdem":1,"intUsuarioId":1,"Usuario":{"$ref":"2"},"EntityKey":{"$id":"4","EntitySetName":"Categoria","EntityContainerName":"DatabaseContext","EntityKeyValues":[{"Key":"intCategoriaId","Type":"System.Int32","Value":"3"}]}},{"$id":"5","intCategoriaId":4,"strCategoriaNome":"UNIDAX","intCategoriaPaiId":0,"intCategoriaOrdem":3,"intUsuarioId":1,"Usuario":{"$ref":"2"},"EntityKey":{"$id":"6","EntitySetName":"Categoria","EntityContainerName":"DatabaseContext","EntityKeyValues":[{"Key":"intCategoriaId","Type":"System.Int32","Value":"4"}]}},{"$id":"7","intCategoriaId":8,"strCategoriaNome":"Freela","intCategoriaPaiId":4,"intCategoriaOrdem":1,"intUsuarioId":1,"Usuario":{"$ref":"2"},"EntityKey":{"$id":"8","EntitySetName":"Categoria","EntityContainerName":"DatabaseContext","EntityKeyValues":[{"Key":"intCategoriaId","Type":"System.Int32","Value":"8"}]}},{"$id":"9","intCategoriaId":9,"strCategoriaNome":"Vendas","intCategoriaPaiId":2,"intCategoriaOrdem":1,"intUsuarioId":1,"Usuario":{"$ref":"2"},"EntityKey":{"$id":"10","EntitySetName":"Categoria","EntityContainerName":"DatabaseContext","EntityKeyValues":[{"Key":"intCategoriaId","Type":"System.Int32","Value":"9"}]}},{"$id":"11","intCategoriaId":14,"strCategoriaNome":"Pessoal","intCategoriaPaiId":4,"intCategoriaOrdem":3,"intUsuarioId":1,"Usuario":{"$ref":"2"},"EntityKey":{"$id":"12","EntitySetName":"Categoria","EntityContainerName":"DatabaseContext","EntityKeyValues":[{"Key":"intCategoriaId","Type":"System.Int32","Value":"14"}]}},{"$id":"13","intCategoriaId":15,"strCategoriaNome":"Academia","intCategoriaPaiId":18,"intCategoriaOrdem":1,"intUsuarioId":1,"Usuario":{"$ref":"2"},"EntityKey":{"$id":"14","EntitySetName":"Categoria","EntityContainerName":"DatabaseContext","EntityKeyValues":[{"Key":"intCategoriaId","Type":"System.Int32","Value":"15"}]}},{"$id":"15","intCategoriaId":16,"strCategoriaNome":"SwissPark","intCategoriaPaiId":4,"intCategoriaOrdem":2,"intUsuarioId":1,"Usuario":{"$ref":"2"},"EntityKey":{"$id":"16","EntitySetName":"Categoria","EntityContainerName":"DatabaseContext","EntityKeyValues":[{"Key":"intCategoriaId","Type":"System.Int32","Value":"16"}]}},{"$id":"17","intCategoriaId":17,"strCategoriaNome":"Supermercado","intCategoriaPaiId":14,"intCategoriaOrdem":1,"intUsuarioId":1,"Usuario":{"$ref":"2"},"EntityKey":{"$id":"18","EntitySetName":"Categoria","EntityContainerName":"DatabaseContext","EntityKeyValues":[{"Key":"intCategoriaId","Type":"System.Int32","Value":"17"}]}},{"$id":"19","intCategoriaId":18,"strCategoriaNome":"Carro","intCategoriaPaiId":17,"intCategoriaOrdem":1,"intUsuarioId":1,"Usuario":{"$ref":"2"},"EntityKey":{"$id":"20","EntitySetName":"Categoria","EntityContainerName":"DatabaseContext","EntityKeyValues":[{"Key":"intCategoriaId","Type":"System.Int32","Value":"18"}]}},{"$id":"21","intCategoriaId":19,"strCategoriaNome":"Teste","intCategoriaPaiId":15,"intCategoriaOrdem":1,"intUsuarioId":1,"Usuario":{"$ref":"2"},"EntityKey":{"$id":"22","EntitySetName":"Categoria","EntityContainerName":"DatabaseContext","EntityKeyValues":[{"Key":"intCategoriaId","Type":"System.Int32","Value":"19"}]}}],"Contato":[{"$id":"23","intContatoId":6,"strContatoNome":"Danielle Ramos Tonhai","strContatoCelular":"(19) 98765-8790","strContatoFixo":"(19) 3245-7869","strContatoEmail":"danielle.ramos@undiax.com.br","strContatoEndereco":"Rua Santos","strContatoComplemento":"casa","strContatoBairro":"Jardim Londres","strContatoCidade":"Campinas","strUFId":"SP","strContatoCEP":"13098-098","intUsuarioId":1,"UF":{"$id":"24","strUFId":"SP","strUFNome":"São Paulo","Contato":[{"$ref":"23"}],"EntityKey":{"$id":"25","EntitySetName":"UF","EntityContainerName":"DatabaseContext","EntityKeyValues":[{"Key":"strUFId","Type":"System.String","Value":"SP"}]}},"Usuario":{"$ref":"2"},"EntityKey":{"$id":"26","EntitySetName":"Contato","EntityContainerName":"DatabaseContext","EntityKeyValues":[{"Key":"intContatoId","Type":"System.Int32","Value":"6"}]}}],"EntityKey":{"$id":"27","EntitySetName":"Usuario","EntityContainerName":"DatabaseContext","EntityKeyValues":[{"Key":"intUsuarioId","Type":"System.Int32","Value":"1"}]}},"EntityKey":{"$id":"28","EntitySetName":"Categoria","EntityContainerName":"DatabaseContext","EntityKeyValues":[{"Key":"intCategoriaId","Type":"System.Int32","Value":"2"}]}},{"$ref":"3"},{"$ref":"5"},{"$ref":"7"},{"$ref":"9"},{"$ref":"11"},{"$ref":"13"},{"$ref":"15"},{"$ref":"17"},{"$ref":"19"},{"$ref":"21"}]

在你发布的JSON中。。。这是一个只有一个元素的数组。如果使用Newtonsoft对对象进行反序列化,可能会出现以下情况:

var client = new WebClient();
var firstElement = JArray.Parse(client.DownloadString(url))[0];
var categories = firstElement.Usuario.Categoria;
我想那会管用的。您必须向下钻取一点以获得类别列表

var client = new WebClient();
var firstElement = JArray.Parse(client.DownloadString(url))[0];
var categories = firstElement.Usuario.Categoria;