Inquiridor
JsonArray

Pergunta
-
Galera, preciso de mais uma ajudinha aqui. Estou precisando montar um JsonArray, pois preciso passar uma lista com todos os produtos escolhidos pelo usuário.
Andei lendo sobre esta funcionalidade e creio que montei certo o json como segue abaixo:
Obs: Este json abaixo estou passando da minha app android
JSONObject json = new JSONObject();JSONArray jArray = new JSONArray();HashMap<String, String> hm = null;int TamLista = arrayList.size();for(int i=0;i<TamLista;i++){JSONObject aux = new JSONObject();hm = arrayList.get(i);aux.put("prod_codbar",hm.get(TAG_CODBAR)); aux.put("prod_desc", hm.get(TAG_PRODUTO));aux.put("prod_marca", hm.get(TAG_MARCA));aux.put("prod_marca",hm.get(TAG_MARCA)); aux.put("prod_tipo",hm.get(TAG_TIPO)); aux.put("prod_un",hm.get(TAG_UNIDADE)); jArray.put(aux);}json.put("Lista",jArray);
O arquivo json fica da seguinte forma:{"Lista":[{"prod_codbar":"7896504305078","prod_desc":"LEITE LONGA VIDA 1L","prod_marca":"SANTA CLARA","prod_tipo":"","prod_un":"L"},{"prod_codbar":"7891042103070","prod_desc":"MARGARINA DORIANA 500G C\/SAL","prod_marca":"SEARA","prod_tipo":"","prod_un":"UN"}]}A dúvida que tenho é de como tratar este no webservice WCF, tentei o seguinte, mas sem sucesso.
IService[OperationContract][WebInvoke(UriTemplate = "JsonComparaLista",RequestFormat = WebMessageFormat.Json,ResponseFormat = WebMessageFormat.Json, Method = "POST")]List<Produtos> ComparaLista(List<List<Produtos>> lista);Service.svcpublic List<BUS.Produtos> ComparaLista(List<List<Produtos>> lista){return ProdutosBus.ComparaLista(lista);}ProdutosBuspublic static List<Produtos> ComparaLista (List<List<Produtos>> lista){List<Produtos> result = new List<Produtos>();Produtos produto = new Produtos();for (int i = 0; i < lista.Count; i++){List<Produtos> listprod = lista[i];for (int n = 0; n < listprod.Count; n++)produto.prod_desc = listprod[n].prod_desc;result.Add(produto);}return result;}Obs.: Este result é apenas um teste que estava fazendo, pois como podem ver estou apenas retornando o mesmo item da lista que recebi.Para Conhecimento segue também a classe Produtos, apenas para ver que uso os mesmo nomes dos campos na hora de montar o jsonpublic class Produtos{[DataMember]public string prod_codbar { get; set; }[DataMember]public string prod_desc { get; set; }[DataMember]public string prod_marca { get; set; }[DataMember]public string prod_un { get; set; }[DataMember]public string prod_tipo { get; set; }public Produtos(string prod_codbar, string prod_desc, string prod_marca, string prod_un, string prod_tipo){this.prod_codbar = prod_codbar;this.prod_desc = prod_desc;this.prod_marca = prod_marca;this.prod_un = prod_un;this.prod_tipo = prod_tipo;}public Produtos(){this.prod_codbar = String.Empty;this.prod_desc = String.Empty;this.prod_marca = String.Empty;this.prod_un = String.Empty;this.prod_tipo = String.Empty;}Galera eu também ainda não consegui depurar no visual studio, estou colocando para depurar e no celular estou colocando na minha app o IP do servidor e a porta que o depurador me informou mas fica eternamente esperando a ação, não debuga.Então se conseguirem identificar o meu erro agradeço muito. Mais uma vez obrigado.
Todas as Respostas
-
Vc pode serializar uma coleção de objetos para o formato JSON utilizando WCF, ao invés de realizar todo este trabalho manual. Escrevi um post sobre isso tempos atrás, acredito que o mesmo deva lhe ajudar:
http://www.devmedia.com.br/integracao-wcf-x-jquery-acessando-web-services-via-javascript/28039
- Sugerido como Resposta Pedro Garay segunda-feira, 29 de junho de 2015 13:13