Javacript Object показать как строку вместо элемента - PullRequest
0 голосов
/ 14 октября 2019

Поэтому я пытаюсь отобразить данные из API, используя JavaScript, но вместо этого получил undefined, когда я получаю console.log (данные), как показано ниже. это объект, но как его инкапсулировать как строку? Любая идея, как преобразовать это в реальный объект, я новичок в JavaScript api, поэтому я немного запутался.

 {"msg":"{\"part\":\"test\",\"station\":\"test2\"}"}  

Я уже пытался де-сериализовать данные, используя JSON.parse(data), но безуспешно.

Ответы [ 2 ]

3 голосов
/ 14 октября 2019

То, что вы опубликовали, на самом деле является объектом со свойством msg, которое является стригированным JSON. Чтобы получить правильный json из этой попытки, obj.msg = JSON.parse(obj.msg); Предполагая, что obj является переменной ответа, вы можете назвать ее как хотите.

См. Фрагмент ниже.

{"msg":"{\"part\":\"test\",\"station\":\"test2\"}"} 

const obj = {"msg":"{\"part\":\"test\",\"station\":\"test2\"}"} ;
console.log('Before parsing:' + typeof obj.msg); // string
obj.msg = JSON.parse(obj.msg);
console.log('After Parsing:' + typeof obj.msg); // object

Надеюсь, это поможет:)

0 голосов
/ 14 октября 2019

JSON.parse преобразовывает объект типа строки в объект. Таким образом, он ожидает весь объект в виде строки. Что не происходит в вашем случае.

У вас есть ключ объекта msg, и его значение является строковым объектом. Поэтому вам нужно преобразовать значение msg в JSON .

, попробуйте несколько способов -

let resp = JSON.parse(data.msg)

или

return JSON.parse(data.msg)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...