Duda Javascript/Json

QuitCat

Buenas,
estoy intentando hacer cosas pequeñas por mi cuenta para aprender, y me he encontrado con un problema que no se muy bien como solucionarlo. Hasta ahora, he visto como tratar en java un objeto Json, y lo hago "replicando" la estructura y usando "@SerializedName("name"). El Json lo obtengo mediante una API que he "creado" con kimono, pero por alguna razón que desconozco, uno de los campos de Json no me lo da como esperaba.

Mi codigo json sería el siguiente mas o menos:

{
  "results": {
    "collection1": [
      {
        "title": {
          "href": "",
          "text": ""
        },
        "date": [
          {
            "href": "",
            "text": "Feb"
          },
          {
            "href": "",
            "text": "15"
          },
          {
            "href": "",
            "text": "2015"
          }
        ],
        "image": {
          "alt": "",
          "src": "http://img.rlsbb.com/images/uAJosetKNw.jpg",
          "text": ""
        }
      },
      {
        "title": {
          "href": "",
          "text": ""
        },
        "date": [
          {
            "href": "",
            "text": "Feb"
          },
          {
            "href": "",
            "text": "18"
          },
          {
            "href": "",
            "text": "2015"
          }
        ],
        "image": [
          {
            "alt": "",
            "src": "http://img.rlsbb.com/images/uAJ0steKNw.jpg",
            "text": ""
          },
          {
            "alt": "",
            "src": "http://1.bp.blogspot.com/-VdJQw_nXO0k/UoAwpBL8yjI/AAAAAAAAABL/H_fKtjG3H5Y/s1700/Online.jpg",
            "text": ""
          }
        ]
      }
}

Como veis, hay veces que el campo "image" lo devuelve como objeto, y otras veces como Array. Supongo que habrá mas de una opción para resolver esto, unas mucho mas optimas que otras, pero me había centrado en intentar resolverlo con javascript, que es una de las opciones que da Kimono, para meter en un array nuevo los objetos image, y cuando se da el caso que los mete en array, coger el primer objeto, ya que el resto es basura que me mete kimono.

El problema concreto que tengo en javascript es que no consigo "preguntar" si "image" es de tipo array u objeto, y además, algo debo estar haciendo mal, que una simple asignación me da error.

var imgprueba=[];
data.imgprueba[0] = data.results.collection1[0].image['src'];
zoeshadow

#1 Puedes usar lo siguiente para preguntar si es un objeto o un array:

var possibleArray = ....;
if( possibleArray instanceof Array){
 // el objeto es un array
}else{
 // el objeto no es un array
}

Usuarios habituales

  • zoeshadow
  • QuitCat