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 в своем коде.