На данный момент у нас есть сайт, управляемый AJAX, который возвращает ответ JSON в следующем формате: [{"n":"bob"}, {"n":"jim"}, ..., {"n":"alex"}]
. В основном массив объектов json.
Однако мы думаем о его структурировании так: [["bob"], ["jim"], ..., ["alex"]]
. В основном массив массивов.
Очевидное различие заключается в том, что вместо доступа к данным через его свойства мы будем обращаться к нему через предполагаемые позиции индекса (т. Е. Array [0] == name), но кроме того, мне любопытно, что профи/минусы каждого. Интересные факторы: производительность на клиенте (как построение структуры данных, так и извлечение ее значений), пропускная способность (очевидно, на больших наборах данных или для более медленных интернет-подключений, например, на мобильных устройствах), дизайн/наилучшая практика, и т. д.json array v json objects - pros cons
ответ
При использовании формата объекта-в-массиве, вы можете загрузить больше данных за единицу, а не только
n
.[{ 'name' : 'John', //more data about john },{ 'name' : 'Joe', //more data about joe }] //myArray[0].name = John
При использовании массива, предполагается, что возвращаемые данные, чтобы быть одного и того же рода.
['John','Joe'...] //all names //myArray[0] = John
, но все это сводится к тому, как вы разбираете данные.
структурирования данных, как это:
[["bob"], ["jim"], ..., ["alex"]]
совершенно неправильно. зачем поместить имя в массив, в массив имен? для чего нужен второй уровень?
Извините, я пытался просто привести простой пример, чтобы избежать путаницы ,Если вы предпочитаете более сложный пример, скажем, что каждый элемент в списке содержит больше, чем просто имя, возможно, данные профиля человека. –
@paulsmith тогда объекты в массиве (первый образец в моем ответе) были бы более безопасным решением для этого. – Joseph
Подход массива не позволит вам использовать значащие имена индексов, поэтому я бы использовал объекты JSON. Вы также обнаружите, что большинство языков программирования имеют хорошие библиотеки для создания вывода JSON.
Если вы не имеете дело с очень большими наборами данных, я не думаю, что подход массива будет обеспечивать заметное преимущество в производительности.
Да, с точки зрения удобочитаемости, подход JSON Object лучше. Но вы говорите, что массивы _are_ на самом деле быстрее объектов? Если да, то с точки зрения чего? Доступ? Синтаксический? Память? –
http://stackoverflow.com/questions/8423493/what-is-the-performance-of-objects-arrays-in-javascript-specifically-for-googl –
- 1. word wrap pros/cons
- 2. Marshalling string json objects в json array
- 3. JSON Parsing Nested Array Objects
- 4. Elm JSON Decoder Array of Objects
- 5. Loop through json array of objects issue
- 6. JSON Parsing Array then Objects in Java
- 7. AngularJS Parse JSON Array Objects Неожиданный токен:
- 8. json object vs array of objects
- 9. flux vs redux pros and cons highlights
- 10. Ищите статьи по автоматическим развертываниям pros/cons
- 11. glsl const array pros
- 12. Parsing json objects
- 13. Deserialize json objects/arrays
- 14. json objects javascript confusion
- 15. json objects in mongod
- 16. Deserializing complex Json objects
- 17. jquery json objects join
- 18. php json parsing objects
- 19. Json Objects AngularJS
- 20. Добавление объектов в «Json Array of Objects» в цикле for
- 21. Bundle array json/File/user-defined objects в Android
- 22. Android json objects to array list в классе Parcelable
- 23. Jackson JSON: Serialize Array of Objects как их родительский тип
- 24. Perl Json Array
- 25. Pros/Con of Excel VBA v SQLite
- 26. jquery vs php pros/cons on include files
- 27. mongodb и cassandra pros/cons для системы многоточечных систем
- 28. php imagecopyresized vs imagecopyresampled vs imagecopy pros/cons
- 29. В LINQ-SQL оберните DataContext оператором using - pros cons
- 30. VB.NET использует буквенные символы типа bad style pros cons
Вопрос не достаточно точен, и ответ имеет вкус «очевидного». – Vincent
Как насчет только '['bob', 'jim', 'alex']'? – neoascetic
* «Предполагаемые позиции индекса» * - Вы ответили на свой вопрос, почему это обычно плохая идея. – deceze