Pergunta

Eu sou muito novo para JSON, e eu preciso analisar alguns que uma API está fornecendo. Uma rápida pesquisa no google apareceu JSON.NET , então eu estou tentando usá-lo agora para analisar esta JSON em um objeto lista. Primeiro de tudo, é JSON.NET a melhor biblioteca para uso para isso?

Este é o que estou tentando fazer: Eu tenho um classe chamada item , por exemplo. O JSON tem muitos "elementos" (se é isso que eles são chamados), e cada contém 3 campos : um ID de inteiro chamado, um nome de cadeia nomeado, e uma data e hora chamado creationTime. Eu gostaria de analisar todos esses "elementos" item do JSON em uma lista de objetos Item . Eu criei 3 campos na classe item para coincidir com o JSON. Como isso pode ser feito usando JSON.NET?

Eu tentei:

List<Item> fav = (List<Item>)new JsonSerializer().Deserialize(new JsonReader((TextReader)new StreamReader(response.GetResponseStream())));

mas não parece trabalho. Recebo um erro de casting - ele só não pode processá-lo em uma caixa lista, mas eu nem tenho certeza se é capaz de processar o JSON em uma classe Item (JSON.NET não é muito bem documentado, mas eu' m indo para depurá-lo amanhã) pesadamente.

Você pode me dar algum código de exemplo para explicar como eu posso analisá-lo com JSON.NET?

Obrigado!

UPDATE: A propósito, esqueci de mencionar - meu projeto vai ser alvo .NET Framework 2.0, por isso estou usando a versão legado de JSON.NET: 1.3.1. Há alguma vantagem grande que pode fazer o valor do projeto a conversão para .NET 3.5, enquanto minando os requisitos do sistema mínimo?

update # 2: eu decidi usar a classe JavaScriptSerializer em System.Web.Extensions.dll vez de JSON.NET, e uma pergunta sobre o que é publicado here . Obrigado!

Foi útil?

Solução

Eu recomendo que você atualize para .NET Framework 3.5 e usar ASP.Net MVC para construir seus serviços JSON. Veja:

http://msmvps.com/blogs/omar/archive/2008/10/03/create-rest-api-using-asp-net-mvc-that -speaks-tanto-json-and-plain-xml.aspx

Outras dicas

Eu percebo esta pergunta é de cerca de 3 anos de idade, mas eu pensei que eu iria apenas acrescentar que, se você quiser construir uma API JSON base, NancyFx é incrível: http://nancyfx.org/

EDIT: Um exemplo, conforme solicitado, muito fácil. Para começar basta adicionar o pacote asp nancyfx a um projeto web via NuGet. (Se você está adicionando-lo para uma aplicação existente em um sub caminho, você vai precisar adicionar uma localização para o web.config, caso contrário, você está pronto para ir)

using Nancy;
using Nancy.ModelBinding;

public class Api : NancyModule
        {
            public Api()
            {
                Get["/api/order/create"] = x => 
                { 
                    var order = this.Bind<Order>(); //xml/json negotiated based on content header

                    var result = ... // Do stuff here

                    return Response.AsJson(result); 
                };
            }       
        }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top