TypeError no capturado: no se puede usar el operador 'in' para buscar 'longitud' en "
Este es el error que recibo cuando trato de hacer $.each a este objeto JSON:
{"type":"Anuncio","textos":["Probando esto","$ 20150515"],"submit":"codParameters?___DDSESSIONID\u003d14EA4721A904D6DD71591156996E29F7%3A%2FMobilTest"}También he intentado hacer lo mismo con stringify, pero recibo el mismo error:
{\"type\":\"Anuncio\",\"textos\":[\"Probando esto\",\"$ 20150515\"],\"submit\":\"codParameters?___DDSESSIONID\\u003d06CBEC9D1A53616EFF703A8C71FBC2B4%3A%2FMobilTest\"}" Si elimino los parámetros ___DDSESSIONID\\u003d06CBEC9D1A53616EFF703A8C71FBC2B4%3A%2FMobilTest del objeto, $.each funciona bien.
por que podria estar pasando esto?
El operador in solo funciona en objetos. Lo estás usando en una cadena. Asegúrese de que su valor sea un objeto antes de usar $.each . En este caso específico, debe analizar el JSON :
$.each(JSON.parse(myData), ...);tal vez olvide agregar el parámetro dataType: 'json' en su $.ajax
$.ajax({ type: "POST", dataType: "json", url: url, data: { get_member: id }, success: function( response ) { //some action here }, error: function( error ) { alert( error ); } });este trabajo para mi
$.each(JSON.parse("[" + data + "]")) $.each solo funciona en objetos. si sus datos son una matriz, puede cambiarlos así
$data = (object)$array;