JSON — Типы данных
В JSON значения могут быть следующих типов:
Значения JSON не могут быть следующих типов:
Строки JSON
Строки в JSON должны записываться в двойных кавычках.
Числа JSON
Числа в JSON должны быть целочисленными или с плавающей точкой.
Объекты JSON
Значения в JSON могут быть объектами.
Объекты как значения в JSON должны следовать тем же правилам, что и объекты JSON.
Массивы JSON
Значения в JSON могут быть массивами.
Логические значения в JSON (boolean)
В JSON могут определяться логически значения true/false.
Значение null
В JSON могут определяться значения null.
Как парсить JSON в Python
Мы покажем вам весь процесс импорта json и его использования для парсинга JSON в Python, с полезной таблицей преобразований JSON-Python. Независимо от того, опытный вы разработчик Python или начинающий, с помощью этого пошагового руководства вы сможете научиться парсить JSON как профессионал!
4 min read
Antonello Zanini
Из этого учебника вы узнаете:
- Что такое JSON и как с ним работать в Python
- Как парсить JSON в Python с помощью модуля json
- Является ли json лучшим вариантом для парсинга JSON
Введение в JSON в Python
Перед тем как углубиться в парсинг JSON с помощью Python, давайте разберемся, что такое JSON и как его можно использовать в Python.
Что такое JSON?
JSON, что является сокращенной аббревиатурой JavaScript Object Notation, — это удобный формат для обмена данными. Он прост для чтения и записи людьми, а также для машинного анализа и генерации. Это делает его одним из самых популярных форматов данных. В частности, JSON стал настоящим веб-языком, который широко используется для передачи данных между серверами и веб-приложениями через API.
Вот пример JSON:
< "name": "Maria Smith", "age": 32, "isMarried": true, "hobbies": ["reading", "jogging"], "address": < "street": "123 Main St", "city": "San Francisco", "state": "CA", "zip": "12345" >, "phoneNumbers": [ < "type": "home", "number": "555-555-1234" >, < "type": "work", "number": "555-555-5678" >], "notes": null >
Как вы видите, JSON состоит из пар ключ-значение. Каждый ключ — это строка, а каждое значение может быть строкой, числом, булевым типом данных, нулем, массивом или объектом. Несмотря на то, что JSON похож на объект JavaScript, его можно использовать в любом языке программирования, включая Python.
Как работать с JSON в Python
Python поддерживает JSON с помощью модуля json, который является частью стандартной библиотеки Python. Это значит, что вам не нужно устанавливать дополнительную библиотеку для работы с JSON в Python. Вы можете импортировать json следующим образом:
import json
Встроенная в Python библиотека json предоставляет полноценный API для работы с JSON. В частности, в ней есть две ключевые функции: loads и load . Первая позволяет парсить строчные данные JSON. Обратите внимание, что, несмотря на то, что ее название кажется множественным, окончание «s» означает «string». Таким образом, ее следует читать как «load-s». Вторая же предназначена для парсинга данных JSON в байты.
С помощью этих двух методов json предоставляет вам возможность преобразовывать данные JSON в эквивалентные объекты Python — такие, как словари и списки, и наоборот. Кроме того, модуль json позволяет создавать пользовательские кодировщики и декодировщики для работы с конкретными типами данных.
Читайте дальше, чтобы узнать, как использовать библиотеку json для парсинга JSON в Python!
Парсинг JSON с помощью Python
Давайте рассмотрим несколько реальных примеров и научимся парсить JSON из разных источников в разнообразные структуры данных Python.
Преобразование JSON String в словарь Python
Предположим, что у вас есть некоторые данные JSON, хранящиеся в строке, и вы хотите преобразовать их в словарь Python. Вот как выглядят данные JSON:
А это его строковое представление в Python:
smartphone_json = ''
Рассмотрите возможность использования в Python тройных кавычек для хранения длинных многострочных данных JSON в формате String.
Вы можете проверить, что слово smartphone содержит валидные в Python данные типа String, с помощью приведенной ниже строки:
print(type(smartphone))
Это будет напечатано:
str расшифровывается как string и означает, что переменная smartphone имеет текстовый тип.
Спарсите строку JSON, содержащуюся в переменной smartphone, в словарь Python с помощью метода json.loads() следующим образом:
import json # JSON string smartphone_json = '' # from JSON string to Python dict smartphone_dict = json.loads(smartphone_json) # verify the type of the resulting variable print(type(smartphone_dict)) # dict
Если вы запустите этот фрагмент, то получите:
Фантастика! Теперь smartphone _dict содержит валидный словарь Python!
Таким образом, для преобразования строки JSON в словарь Python достаточно передать правильную строку JSON в функцию json.loads()
Теперь вы можете получить доступ к полученным полям словаря как обычно:
product = smartphone_dict['product'] # smartphone priced = smartphone['price'] # 999.99 colors = smartphone['colors'] # ['black', 'white', 'red', 'blue']
Следует помнить, что функция json.loads() не всегда возвращает словарь. В частности, возвращаемый тип данных зависит от входной строки. Например, если строка JSON содержит данные типа flat, она будет преобразована в соответствующий примитивный тип данных Python:
import json json_string = '15.5' float_var = json.loads(json_string) print(type(float_var)) #
Аналогично, содержащая список массивов строка JSON станет списком Python:
import json json_string = '[1, 2, 3]' list_var = json.loads(json_string) print(json_string) #
Посмотрите на приведенную ниже таблицу преобразования, чтобы увидеть, как значения JSON преобразуются в данные Python с помощью json :
| JSON-значение | Данные Python |
| string | str |
| number (integer) | int |
| number (real) | float |
| true | True |
| false | False |
| null | None |
| array | list |
| object | dict |
Преобразование JSON API Response в словарь Python
Представьте, что вам нужно сделать API и преобразовать его JSON-ответ в словарь Python. В приведенном ниже примере мы вызовем следующую конечную точку API из проекта Placeholder, чтобы получить некоторые поддельные JSON-данные:
https://jsonplaceholder.typicode.com/todos/1
Этот RESTFul API возвращает ответ в формате JSON, представленный ниже:
Вы можете вызвать этот API с помощью модуля urllib из стандартной библиотеки и преобразовать полученный JSON в словарь Python следующим образом:
import urllib.request import json url = "https://jsonplaceholder.typicode.com/todos/1" with urllib.request.urlopen(url) as response: body_json = response.read() body_dict = json.loads(body_json) user_id = body_dict['userId'] # 1
urllib.request.urlopen() выполняет вызов API и возвращает объект HTTPResponse . Его метод read() затем используется для получения тела ответа body_json, которое содержит ответ API в виде строки JSON. Наконец, эта строка может быть спарсена в словарь Python с помощью json.loads() , как объяснялось ранее.
Аналогичным образом можно добиться того же результата с помощью requests:
import requests import json url = "https://jsonplaceholder.typicode.com/todos/1" response = requests.get(url) body_dict = response.json() user_id = body_dict['userId'] # 1
Обратите внимание, что метод .json() автоматически преобразует объект ответа, содержащий данные JSON, в соответствующую структуру данных Python.
Отлично! Теперь вы знаете, как спарсить ответ JSON API в Python с помощью urllib и requests .
Загрузка файла JSON в словарь Python
Предположим, у вас есть некоторые данные JSON, хранящиеся в файле smartphone.json , как показано ниже:
< "name": "iPear 23", "colors": ["black", "white", "red", "blue"], "price": 999.99, "inStock": true, "dimensions": < "width": 2.82, "height": 5.78, "depth": 0.30 >, "features": [ "5G", "HD display", "Dual camera" ] >
Ваша цель — прочитать файл JSON и загрузить его в словарь Python. Достичь этого можно с помощью приведенного ниже фрагмента:
import json with open('smartphone.json') as file: smartphone_dict = json.load(file) print(type(smartphone_dict)) # features = smartphone_dict['features'] # ['5G', 'HD display', 'Dual camera']
Встроенная библиотека open() позволяет загрузить файл и получить соответствующий ему объект файла. Затем метод json.read() десериализует текстовый или двоичный файл, содержащий документ JSON, в эквивалентный объект Python. В данном случае smartphone.json становится словарем Python.
Идеально, парсинг файла JSON в Python занимает всего несколько строк кода!
Из данных JSON в пользовательский объект Python
Теперь вы хотите спарсить некоторые данные JSON в пользовательском классе Python. Вот как выглядит ваш кастомный класс Smartphone в Python:
class Smartphone: def __init__(self, name, colors, price, in_stock): self.name = name self.colors = colors self.price = price self.in_stock = in_stock
Здесь задача состоит в том, чтобы преобразовать следующую строку JSON в экземпляр smartphone :
Чтобы выполнить эту задачу, необходимо создать пользовательский декодер. Для этого необходимо расширить класс JSONDecoder и установить параметр object_hook в методе __init__ . Присвойте ему имя метода класса, содержащего кастомную логику парсинга. В этом методе вы можете использовать значения, содержащиеся в стандартном словаре, возвращаемые json.read() для инстанцирования объекта Smartphone .
Определите пользовательский SmartphoneDecoder , как показано ниже:
import json class SmartphoneDecoder(json.JSONDecoder): def __init__(self, object_hook=None, *args, **kwargs): # set the custom object_hook method super().__init__(object_hook=self.object_hook, *args, **kwargs) # class method containing the # custom parsing logic def object_hook(self, json_dict): new_smartphone = Smartphone( json_dict.get('name'), json_dict.get('colors'), json_dict.get('price'), json_dict.get('inStock'), ) return new_smartphone
Обратите внимание, что для чтения значений словаря в пользовательском методе object_hook() следует использовать метод get() . Это обеспечит отсутствие ошибок KeyErrors , если ключ отсутствует в словаре. В этом случае будет просто возвращено значение None .
Теперь вы можете передать класс SmartphoneDecoder в параметр cls в json.loads() для преобразования строки JSON в объект Smartphone :
import json # class Smartphone: # . # class SmartphoneDecoder(json.JSONDecoder): # . smartphone_json = '' smartphone = json.loads(smartphone_json, cls=SmartphoneDecoder) print(type(smartphone)) # name = smartphone.name # iPear 23 Plus
Аналогично можно использовать SmartphoneDecoder с json.load() :
smartphone = json.load(smartphone_json_file, cls=SmartphoneDecoder)
Вуаля! Теперь вы знаете, как парсить данные JSON в пользовательские объекты Python!
Данные Python в JSON
Вы также можете пойти обратным путем и преобразовать структуры данных и примитивы Python в JSON. Это возможно благодаря функциям json.dump() и json.dumps(), в соответствии с приведенной ниже таблицей преобразований:
| Данные Python | JSON-значение |
| str | string |
| int | number (integer) |
| float | number (real) |
| True | true |
| False | false |
| None | null |
| list | array |
| dict | object |
| Null | None |
json.dump() позволяет записать строку JSON в файл, как показано в следующем примере:
import json user_dict = < "name": "John", "surname": "Williams", "age": 48, "city": "New York" ># serializing the sample dictionary to a JSON file with open("user.json", "w") as json_file: json.dump(user_dict, json_file)
Этот фрагмент сериализует переменную Python user_dict в файл user.json .
Аналогично, json.dumps() преобразует переменную Python в эквивалентную ей строку JSON:
import json user_dict = < "name": "John", "surname": "Williams", "age": 48, "city": "New York" >user_json_string = json.dumps(user_dict) print(user_json_string)
Запустите этот сниппет и вы получите:
Это именно JSON-представление словаря Python.
Обратите внимание, что вы также можете указать пользовательский кодер, однако демонстрация того, как это сделать, не является целью данной статьи. Чтобы узнать больше, обратитесь к официальной документации.
Является ли стандартный модуль json лучшим ресурсом для парсинга JSON в Python?
Как и в случае с парсингом данных в целом, парсинг JSON сопряжен с проблемами, которые нельзя игнорировать. Например, в случае недействительного, неполного или нестандартного JSON модуль Python json не справится с задачей.
Также необходимо быть осторожным при парсинге данных JSON из ненадежных источников. Это связано с тем, что вредоносная строка JSON может привести к поломке парсера или потреблению большого количества ресурсов. Это лишь некоторые из проблем, которые должен учитывать парсер Python JSON.
Вы можете ввести пользовательскую логику для решения этих конкретных случаев. В то же время, это может занять слишком много времени и привести к сложному и ненадежному коду. По этой причине вам следует рассмотреть коммерческий инструмент, облегчающий разбор JSON, например, Web Scraper IDE.
Web Scraping IDE создана специально для разработчиков и обладает широким набором функций для парсинга JSON-контента и не только. Этот инструмент сэкономит вам массу времени и поможет обезопасить процесс разбора JSON. Кроме того, он поставляется с прокси Bright Data для анонимного вызова JSON API в случае наличия гео-ограничений.
Если вы спешите, вас также может заинтересовать наше предложение «Данные как услуга». С помощью этого сервиса вы можете попросить Bright Data предоставить вам индивидуальный набор данных, который соответствует вашим конкретным потребностям. Bright Data позаботится обо всем, от производительности до качества данных.
Парсинг данных JSON еще никогда не был таким простым!
Заключение
Python позволяет вам анализировать данные JSON с помощью стандартного модуля json . Он предоставляет мощный API для сериализации и десериализации содержимого JSON. В частности, он предлагает методы json.read() и json.reads() для работы с файлами JSON и строками JSON соответственно. Здесь вы увидели, как использовать их для парсинга данных JSON в Python на нескольких реальных примерах. В то же время, вы также поняли ограничения этого подхода. Именно поэтому вы, возможно, захотите попробовать такое передовое и полнофункциональное коммерческое решение для парсинга данных, как Web Scraper IDE от Bright Data.
Использование JSON в JavaScript и Node.js
JSON — это один из самых популярных форматов обмена данными между бекэндом и фронтэндом. Еще JSON известен как JavaScript Object Notation. Он очень похож на то, как выглядят обычные JavaScript объекты, но также имеет свои особенности. Читается — “джейсон”, хотя часть твоих будущих коллег будут говорить и “джсон”, и “жсон”, и даже “жисон”.
JSON не накладывает никаких ограничений на язык программирования, который будет с ним работать. Ты можешь работать в организации, где часть бекэнд сервисов написана на Python, часть на Java, а фронт на JS и все они прекрасно обмениваются JSON сообщениями.
Хранение данных в формате JSON
Начнем с того, что JSON — это строка. Это позволяет при необходимости очень эффективно сжимать данные. Недостаток — мы не можем хранить циклические структуры данных, например объект, который ссылается на самого себя.
(Почти) все должно быть обернуто в кавычки
В отличие от JavaScript, ты должен пользоваться только двойными кавычками и оборачивать в них все свойства объектов. Одинарные или обратные (косые) кавычки использовать нельзя.
В JS у нас был такой объект
< name: 'Jack', isMarried: false, age: 25, >
А в JSON он станет таким
< "name": "Jack", "isMarried": false, "age": 25 >
Обрати внимание, что в JavaScript объектах наличие запятой после age: 25, является допустимым, а в JSON — нет.
Названия всех полей обернуты в двойные кавычки, а значения — не все. Числа и булевы значения хранятся без кавычек.
Объекты хранятся в фигурных скобках
Для хранения объектов используются фигурные скобки, как и в JS.
Заметь, что если сервер отвечает в формате JSON, то предполагается, что он ответит объектом. Ты не можешь просто список полей. Они все обязательно должны быть обернуты в фигурные скобки, чтобы стать JSON объектом.
Массивы хранятся в квадратных скобках
Все точно как в JS, оборачиваем название массива в двойные кавычки, а сам массив указываем в квадратных скобках.
< "pets": ["Rex", "Sandy"] >
Еще раз обращаем внимание, что в конце строки нет ни запятой, ни точки с запятой.
Все данные JSON в объекте хранятся как пары “ключ”:“значение”
Как и в JS, ты можешь добавлять в объект только пары ключ:значение . Если тебе нужно сохранить несколько значений без ключей, то тебе нужен массив.
Конвертация JavaScript объектов в JSON и обратно
Для конвертации из обычного JS объекта в JSON строку, тебе нужна функция JSON.stringify(obj) . Она доступна без установки дополнительных модулей. Передаешь ей объект obj и на выходе получаешь JSON объект.
const user = < name: 'Jack', isMarried: false, age: 25, > const userJSON = JSON.stringify(user); console.log(userJSON); //
Для конвертации из JSON в обычный объект, нам нужна функция JSON.parse(s) . Даем строку в формате JSON на вход, получаем JS объект на выходе.
const jsonString = ''; const parsedUser = JSON.parse(jsonString); console.log(parsedUser); //
Express.js и JSON
Так как мы знаем, что JSON объект — это строка, нам будет просто модифицировать сервер и вместо Hello, Express.js отправлять какой-нибудь объект.
Представим, что нам нужно передать на фронтэнд объект
< name: 'Hero', isLearning: true, level: 'apprentice', >
Сделаем это несколькими способами. Во всех случаях фронтэнд получит одно и то же, в чем ты можешь убедиться с помощью запроса в браузере.
server.get('/', (req, res) => < return res.send(''); >)
server.get('/', (req, res) => < const user = < name: 'Hero', isLearning: true, level: 'apprentice' >; return res.send(JSON.stringify(user)); >)
server.get('/', (req, res) => < const user = < name: 'Hero', isLearning: true, level: 'apprentice' >; return res.json(user); >)
Повторю еще раз. Во всех случаях в итоге получится одно и то же. Мы отправим ответ со статусом 200 и строкой , которую получатель сможет использовать как ему захочется.
По правде говоря, между res.send и res.json есть разница и она состоит в типе ответа. Это специальный заголовок Content-Type, который в случае res.send устанавливается равным text/html , а для res.json — application/json .
Используй res.json , если у тебя есть готовый объект, который ты хочешь отправить в формате JSON.
Третий пример самый удачный, так как нам нужно делать миниум лишних действий. Мы передаем объект в res.json и преобразование в JSON строку происходит внутри. Дополнительный (явный) вызов JSON.stringify , как в примере 2, в этом случае не нужен.
JavaScript – формат JSON и примеры работы с ним
JSON (JavaScript Object Notation) – это текстовый формат представления данных в нотации объекта JavaScript. Предназначен JSON, также как и некоторые другие форматы такие как XML и YAML, для обмена данными.

Несмотря на своё название, JSON можно использовать не только в JavaScript, но и в любом другом языке программирования.
JSON по сравнению с другими форматами также обладает достаточно весомым преимуществом. Он в отличие от них является более компактным, а это очень важно при обмене данными в сети Интернет. Кроме этого, JSON более прост в использовании, его намного проще читать и писать.
При веб-разработке JSON очень часто применяется в качестве формата для передачи информации от веб-сервера клиенту (веб-браузеру) при AJAX запросе.
Как выглядит этот процесс? Его можно представить в виде двух шагов. На первом шаге, сервер, по запросу пришедшему ему от клиента, сначала формирует некоторый набор данных в удобном формате, который затем можно было бы очень просто упаковать в строку JSON. Завершается работа на сервере отправкой JSON данных в качестве результата клиенту. На втором шаге, клиент получает в качестве ответа от сервера строку JSON и распаковывает её, т.е. переводит в JavaScript объект. После этого на клиенте выполняются дальнейшие с ними действия, например, выводятся на страницу.
Это один из примеров использования формата JSON. Но его применение не ограничивается только этим сценарием, их очень много и не только в веб.
В JSON, в отличие от XML и YAML, данные организованы также как в объекте JavaScript. Но JSON – это не объект, а строка. При этом не любой объект JavaScript может быть переведён один к одному в JSON. Например, если у объекта есть методы, то они при преобразовании в строку JSON будут проигнорированы и не включены в неё.
Структура формата JSON
Структура строки JSON практически ничем не отличается от записи JavaScript объекта.
Она состоит из набора пар ключ-значения . В этой паре ключ отделяется от значения с помощью знака двоеточия ( : ), а одна пара от другой — с помощью запятой ( , ). При этом ключ в JSON, в отличие от объекта обязательно должен быть заключен в двойные кавычки . Это первое отличие JSON от JavaScript объекта. В объекте ключ (имя свойства) не обязательно следует заключать в двойные кавычки.
JavaScript
// строка JSON var jsonPerson = '{"name":"Иван","age":25}'; // объект JavaScript var person = { name: "Иван", age: 25 };
Чтобы не усложнять доступ к данным, при задании ключам имён лучше придерживаться тех же правил, что и при именовании переменных.
Второе отличие заключается в том, что значение ключа в JSON можно задать только в одном из следующих форматов: string (строкой), number (числом), object (объектом), array (массивом), boolean (логическим значением true или false ) или null (специальным значением JavaScript). Например, значение ключа в JSON не может быть функцией или датой (объектом типа Date ).
JavaScript
// объект JavaScript var person = { name: "Иван", birthDay: new Date(Date.UTC(1985, 03, 05)), getAge: function () { var ageDate = new Date(Date.now() - this.birthDay.getTime()); return Math.abs(ageDate.getUTCFullYear() - 1970); } }; // строка JSON var jsonPerson = '{"name":"Иван","birthDay":"1985-04-05T00:00:00.000Z"}';
Пример JSON строки, состоящей из различных типов данных:
JavaScript
{ "name": "Иван", "age": 37, "mother": { "name": "Ольга", "age": 58 }, "children": [ "Маша", "Игорь", "Таня" ], "married": true, "dog": null }
В ней ключ «name» имеет в качестве значения строку, «age» — число, «mother» — объект, состоящий из «name» и «age», «children» — массив, «married» — логический тип, «dog» — null .
При этом стоит обратить внимание на то, что JSON не допускает использование внутри своей структуры комментариев.
Работа с JSON в JavaScript
Как было уже отмечено выше, JSON – это строка.
JavaScript
// переменная personData, содержит в качестве значения строку в формате JSON var personData = '{"name":"Иван","age":37,"mother":{"name":"Ольга","age":58},"children":["Маша","Игорь","Таня"],"married": true,"dog":null}';
Работа с JSON в JavaScript обычно осуществляется в двух направлениях:
- перевод строки JSON в объект (данный процесс ещё называют парсингом);
- конвертирование объекта в строку JSON (другими словами действие обратное парсингу).
Парсинг JSON
Парсинг JSON (перевод строки JSON в объект JavaScript) осуществляется с помощью метода eval или parse .
Пример использования eval для парсинга JSON:
JavaScript
var person = eval('('+personData+')');
Метод eval не рекомендуется использовать так как он не безопасен. Так если кто-то сможет добавить скрипт в строку JSON, то он выполнится.
В JavaScript для парсинга строки в JSON рекомендуется использовать метод JSON.parse . Он такой уязвимости не имеет.
Использование метода JSON.parse :
JavaScript
// переменная person - это объект JavaScript, который получен путём парсинга строки JSON var person = JSON.parse(personData);
Конвертирование объекта JavaScript в строку JSON
Перевод объекта JavaScript в строку JSON осуществляется с помощью метода JSON.stringify . Данный метод осуществляет действие обратное методу JSON.parse .
JavaScript
var personString = JSON.strigify(person);
Преимущества формата JSON
Формат представления данных JSON имеет следующие преимущества:
- удобные и быстрые в работе методы, предназначенные для конвертации (парсинга) строки JSON в объект JavaScript и обратно;
- понятная и простая структура данных;
- очень маленький размер по сравнению с другими форматами данных (например XML). Это связано с тем, что формат JSON содержит минимальное возможное форматирование, т.е. при его написании используется всего несколько специальных знаков. Это очень важное преимущество, т.к. данные представленные в формате JSON будут быстрее загружаться, чем, если бы они были бы представлены в других форматах.
Из-за того что данный формат имеет очень много преимуществ он стал применяться не только в JavaScript, но и во многих других языках, таких как C, Ruby, Perl, Python, PHP и т.д.
Сравнение форматов JSON и XML
Формат JSON имеет следующие преимущества перед форматом XML:

- При передаче некоторых данных размер JSON будет значительно меньше, чем размер XML.
- JSON имеет более удобные методы конвертации в структуры данных JavaScript, чем XML.
- JSON более просто создавать, чем XML.
Работа с данными JSON после парсинга
Работа с данными JSON после парсинга осуществляется как с объектом JavaScript.
JavaScript
//JSON var personData = '{"name":"Иван","age":37,"mother":{"name":"Ольга","age":58},"children":["Маша","Игорь","Таня"],"married": true,"dog": null}'; //Объект JavaScript person var person = JSON.parse(personData);
Рассмотрим основные моменты:
JavaScript
//получить значения ключа (свойства) name person.name; person["name"]; //получить значения ключа (свойства) name, находящегося в объекте mother person.mother.name; //удалить элемент age delete(person.age) //добавить (или обновить) ключ (свойство) person.eye = "карие"; //при работе с массивами необходимо использовать методы, предназначенные для работы именно с массивами //удалить 1 элементиз массива (метод splice) person.children.splice(1,1) //добавить элемент в массив (метод push) person.children.push("Катя");

Для перебора элементов в объекте можно использовать цикл for..in :
JavaScript
for (key in person) { if (person.hasOwnProperty(key)) { //ключ = key //значение = person[key] console.log("Ключ = " + key); console.log("Значение image" src="https://itchief.ru/assets/images/tickets/2015.12/javascript-for-in-object.png" alt="JavaScript - Перебор элементов в объекте" title="JavaScript - Перебор элементов в объекте"> Для перебора элементов массива можно использовать следующий цикл:
JavaScript for (var i=0; i