2010-07-23 15 views
8

Me he encargado de crear una fuente de datos simple para que los clientes puedan recuperar una lista de cosas por JSON. Cada cosa tiene una identificación, por lo que mi primer impulso fue crear algo así comoJSON: elementos clave por identificación o no?

{ 
    "13": { 
     "name": "foo", 
     "height": 17 
    }, 
    "18": { 
     "name": "bar", 
     "height": 22 
    } 
... 
} 

Pero me han dicho que este es un abuso de propiedades JS como una matriz asociativa, por lo que algo así sería más apropiado :

[ 
    { 
     "id": 13, 
     "name": "foo", 
     "height": 17 
    }, 
    { 
     "id": 18, 
     "name": "bar", 
     "height": 22 
    } 
] 

La segunda versión parece ... difícil. ¿Cuál es la mejor práctica aquí?

+0

¿Por qué sería esto un abuso? Me parece un uso muy legítimo. –

Respuesta

3

La forma común de hacerlo es la última y prácticamente no hay beneficios de hacer la primera. A lo sumo, has ahorrado al consumidor de tu API unas cinco pulsaciones de teclas; en el peor, has creado una API que es mucho menos que autoexplicativa. es decir, ¿esa es la clave del Id del artículo? ¿Es algún otro tipo de identificador? ¿Es único solo para esta solicitud? Etc.

8

Si desea acceder al objeto a través de la ID, utilice la variante anterior con la ID como nombre de propiedad. Luego puede acceder directamente a ese objeto usando la ID del objeto. De lo contrario, si necesita trabajar con todos los objetos de todos modos, use la última variante.

+1

Realmente no sé cómo los clientes utilizarán estos datos todavía. – erjiang

Cuestiones relacionadas