last day (15 days later) » 

23:55
1
A: LLenando Picker Xamarin Forms con Json

Ramiro BaroneEn este mainPage, haces todo, llamar al servicio, rellenar el picker, realizas el Cast del elemento seleccionado y tambien esta la clase declarada sobre el objeto a usar. public partial class MainPage : ContentPage { public MainPage() { InitializeComponent(); ...

eso me da lo siguiente ` Newtonsoft.Json.JsonSerializationException: 'Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.Collections.Generic.List1[SUMATEAPPT2.Modelos.JWS.Es‌​tados]' because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly. ... not a collection type like an array or List<T>)
porque estas intentado desearializar el objeto con Estados, deberias usar tu clase Table, var result = JsonConvert.DeserializeObject<List<Table>>(json);
Te hago la sugerencia que intentes mantener los mismos nombres de tu objetos y tu lista, porque a tu objeto le llamas Table y haces referencia a un Estado de Mexico, y cuando haces tu List<> les pones Table en singular cuando es un listado de registros. Estoy seguro que te sera mas facil de leer cuando tengas una cantidad mayor de array o List<T> y para quien lea tu codigo.
es que el servicio que me devuelve ese json así me tira todo por Tableses una pesades, seguro el origen de todo este problema,ya trate de deserlizar por DeserializeObject<List<Table>> pero me tira un error Newtonsoft.Json.JsonSerializationException: Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.Collections.Generic.List1[SUMATEAPPT2.Modelos.JWS.Ta‌​ble]' because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly.`
podes enviarme la direccion del servicio asi la consumo?
no disculpa no puedo esta muy local, peor la respuesta que me tira es justo el json de arriba
23:55
Si no leo mal, tu servicio devuelve un array y no un List<T> proba de esta manera var result = JsonConvert.DeserializeObject<Table[]>(json);
var json = JsonConvert.DeserializeObject<Table[]>(xjson); me da Cannot deserialize the current JSON object (e.g. {"name":"value"} ...
podes colocar el codigo del servicio?
Listo, lo agregue si te preguntas porque le doy tanta vuelta, es para convertir la respuesta del SOAP a JSON y así poder consumirla desde Xamarin
en que creas el servicio?
` using System; using System.Web.Services; using System.Diagnostics; using System.Web.Services.Protocols; using System.Xml.Serialization; using System.ComponentModel; using System.Data;` esas son las librerias, por lo que entiendo de vuelve un xml mismo que estoy convirtiendo como tal es una WebReference que me dio mi jefe y quiere que consuma
23:55
Pero si lo que tu recibes es un json, no comprendo que tiene que ver el SOAP, es la forma de transmicion de la info, SOAP y REST (normalmente ligada con json por el menor tamaño de la respuesta).
el soap me regresa el xml en WebReference.CPAWS fx = new WebReference.CPAWS(); donde CPAWS es el servicio que debo consumir, ahora apartir de esa linea para abajo es lo que convierte el xml en json, a todo esto cuando debuggeo recibo todos los datos por separado bien, el problema esta en que cuando quiero asignar PickerEstados.SelectedIndex = item.CLAVE_E; el selectedIndex toma el valor por default y no lo que le estoy dando
es que no debes hacer eso, el index es por defecto autoincremental, luego cuando hagas click en el picker y castees el objeto a Table, puedes ver que CLAVE_E. te deje el ejemplo como castearlo y ahi puede preguntar el CLAVE_E que trae ese item seleccionado.
Table estado = (Table)PickerEstados.SelectedItem; - 'Specified cast is not valid.'
var estado = (Table)PickerEstados.SelectedItem; Podes compartir el repositorio en un git?
claro pero me imagino que el principal problema sería consumir el serivicio, de mientras te dejo toda mi respuesta json tal cual es.
23:55
claro que te iba a funcionar mal, tienes mas propiedades en el json de las que tu declaras en la clase, entonces el json por defecto rompe. Deberias colocar todas las propiedades o Decorar tu propiedad json con el Atributo JsonProperty("CLAVE_E"), y asi con cada propiedad que tengas.
mmm segun yo tengo todas tambien ya subi la clase actualizada, podrías poner un ejemplo de lo que dices del JsonProperty

last day (15 days later) »