Tengo un objeto json que devuelve una solicitud AJAX y tengo algunos problemas con el .length
porque sigue regresando undefined
. Me pregunto si lo estoy usando bien:
console.log(data.length);
console.log(data.phones.length);
Ambos regresan undefined
aunque sean objetos válidos.
Actualización:
Muestra del objeto JSON devuelto:
{"reqStatus":true,"phones":{"one":{"number":"XXXXXXXXXX","type":"mobile"},"two":{"number":"XXXXXXXXXX","type":"mobile"}}}
javascript
json
nkcmr
fuente
fuente
Respuestas:
Puedes usar algo como esto
fuente
Su problema es que el objeto de su teléfono no tiene una propiedad de longitud (a menos que lo defina en algún lugar del JSON que devuelva) ya que los objetos no son lo mismo que las matrices, incluso cuando se utilizan como matrices asociativas. Si el objeto del teléfono fuera una matriz, tendría una longitud. Tienes dos opciones (quizás más).
Cambie su estructura JSON (suponiendo que esto sea posible) para que los 'teléfonos' se conviertan
(tenga en cuenta que no hay un identificador de número de palabra para cada teléfono, ya que se devuelven en una matriz indexada a 0). En esta respuesta
phones.length
será válida.Repite los objetos contenidos en el objeto de tu teléfono y cuéntalos a medida que avanzas, por ejemplo
Si solo está apuntando a nuevos navegadores, la opción 2 podría verse como este
fuente
Considere usar underscore.js . Le permitirá comprobar el tamaño, es decir, así:
fuente
no necesita cambiar su formato JSON.
reemplazar:
con:
fuente
fuente
prueba esto
fuente
usa este
o
fuente
fuente
TechnologyId
propiedad