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:
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.svc
public List<BUS.Produtos> ComparaLista(List<List<Produtos>> lista)
{
return ProdutosBus.ComparaLista(lista);
}
ProdutosBus
public 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 json
public 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.
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.






0 comentários:
Postar um comentário