JSON: ключевые элементы по идентификатору или нет? - PullRequest
9 голосов
/ 23 июля 2010

Мне было поручено создать простой источник данных, чтобы клиенты могли получать список вещей по JSON. У каждой вещи есть идентификатор, поэтому мой первый импульс - создать что-то вроде

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

Но мне сказали, что это злоупотребление свойствами JS как ассоциативного массива, поэтому что-то вроде этого будет более уместным:

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

Вторая версия просто кажется ... сложной. Какая лучшая практика здесь?

Ответы [ 2 ]

10 голосов
/ 23 июля 2010

Если вы хотите получить доступ к объекту через идентификатор, используйте первый вариант с идентификатором в качестве имени свойства. Затем вы можете напрямую получить доступ к этому объекту, используя идентификатор объекта. В противном случае, если вам все равно нужно работать со всеми объектами, используйте последний вариант.

5 голосов
/ 23 июля 2010

Обычный способ сделать это - последний, и от первого практически нет пользы. В лучшем случае вы сэкономили потребителю вашего API около пяти нажатий клавиш, в худшем - вы создали API, который намного меньше, чем самоочевидный. т. е. это ключ идентификатор Id предмета? Это какой-то другой идентификатор? Это уникально только для этого запроса? И т.д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...