JSON, несомненно, популярный формат обмена данными, но также вызывает сомнения у новичков в том, как эффективно с ним обращаться.
Простой пример, объясняющий, как преобразовывать данные между объектом JS и строкой JSON и наоборот.
Ниже приведена простая переменная JS со строковым значением.
// A string of characters let str1 = "firstname is rachel and lastname is green";
если у вас есть сомнения, проверьте тип переменной.
console.log(typeof str1); //string
Теперь давайте посмотрим на это утверждение
let str2 = '{"firstName":"Rachel", "lastName":"Green"}'
Вы видите фигурные скобки, пару ключ-значение, заключенную в двойные кавычки.. ура!! JSON..
Извините, чтобы разочаровать, это просто строка с содержимым, подобным JSON.
Если не веришь моим словам, проверь вывод
console.log(typeof str2); //string
Я полагаю, вы, должно быть, догадались о причине, это одинарные кавычки ''
Если вам интересно, можем ли мы просто использовать то же самое без одинарных кавычек? Разве JS не разрешит объект словаря?
Да очень хорошо…
let obj1 = {"firstName":"Rachel", "lastName":"Green"} console.log(obj1) //object console.log(obj1.firstName) //Rachel
Итак... в чем проблема? Почему мы не можем использовать то же самое в кодировании JS?
Проблема в том, что JSON предназначен для обмена данными. Вы будете получать данные JSON между системами (через API, базу данных или ввод), и эти экземпляры будут отправлены вам в виде строки.
О, ладно… теперь это имеет смысл… но как преобразовать строку, чтобы JS можно было использовать для чтения значения
let str2 = '{"firstName":"Rachel", "lastName":"Green"}' let obj2 = JSON.parse(str2) console.log(typeof obj2) //object console.log(obj2) //{ firstName: 'Rachel', lastName: 'Green' } console.log(obj2.firstName) //Rachel
это здорово… поэтому JSON.Parse используется для преобразования строки со значением JSON в объект JS.
Теперь, как поделиться своими объектами JS как JSON с другими?
Просто, используйте JSON.stringify
str3 = obj2.stringify(obj2) console.log(str3) //{"firstName":"Rachel","lastName":"Green"} console.log(typeof str3) // string
Теперь другой разработчик обязан разобрать вашу строку JSON в своем коде.