#javascript #json
Вопрос:
Я сохранил адрес в виде JSON в своей базе данных sql, как мне получить доступ к каждому ключу и значению объекта json
Значения таблиц пользователей:
{
id: 1,
billing_address: ""{\"country\":\"India\",\"address\":\"23, 4th cross\",\"city\":\"Udupi\",\"state\":\"Tamil Nadu\",\"zip\":\"123456\"}"",
created_at: "2021-06-02T03:16:04.000Z",
email: "xxx@gmail.com",
name: "xxx"
}
billing_address содержит поля адрес, страна, город, штат и почтовый индекс.
Как получить доступ к каждому ключу и значению внутри объекта JSON billing_address в ReactJS?
Комментарии:
1. Пожалуйста, проверьте Object.entries и JSON.parse
2. @kiranvj вопрос, на который вы ссылались, не отвечает на вопрос Анджелины. Вместо этого им нужна помощь с JSON.parse.
3. @ChristianFritz Конечно. Проголосовали за повторное открытие.
4. У вас есть строка JSON с двойным кодированием. Чтобы разобрать его, используйте
JSON.parse(JSON.parse(obj.billing_address))
. Лучшим вариантом было бы исправить то, что является двойным кодированием5. @Фил, большое спасибо!
Ответ №1:
Для получения платежного адреса вам необходимо использовать JSON.parse
. С вашим текущим форматом данных вам нужно использовать его дважды. Пожалуйста, ознакомьтесь с приведенным ниже кодом.
var data = {
id: 1,
billing_address: ""{\"country\":\"India\",\"address\":\"23, 4th cross\",\"city\":\"Udupi\",\"state\":\"Tamil Nadu\",\"zip\":\"123456\"}"",
created_at: "2021-06-02T03:16:04.000Z",
email: "xxx@gmail.com",
name: "xxx"
};
var billingAddress = JSON.parse(JSON.parse(data.billing_address));
console.log("Billing address:", billingAddress);
console.log("Country:", billingAddress.country );
Ответ №2:
Вы можете использовать метод JSON.parse() для преобразования строки JSON в объект.
Например:
const dbAddress =
{
id: 1,
billing_address: ""{\"country\":\"India\",\"address\":\"23, 4th cross\",\"city\":\"Udupi\",\"state\":\"Tamil Nadu\",\"zip\":\"123456\"}"",
created_at: "2021-06-02T03:16:04.000Z",
email: "xxx@gmail.com",
name: "xxx"
};
const address =
{
...dbAddress,
billing_address: JSON.parse(JSON.parse(dbAddress.billing_address)),
};
console.log(address);
console.log(address.billing_address.country);