Объект рассматривается как строка - PullRequest
0 голосов
/ 30 марта 2020

В моем коде у меня есть ответ из базы данных PHP в переменной. Это должно быть объективно, однако, когда я консоль журнала переменная typeof, он возвращает «строку». Когда я console.log сама переменная и скопировать вставить его в моем коде (как переменная «test»), затем console.log (typeof test), он возвращает объект, и я могу манипулировать «test», как обычно ... Я не понимаю, почему, потому что по логике это должно действовать так же. Есть ли способ преобразовать переменную типа «строка» в тип «объект»? Заранее спасибо (вы можете увидеть мой код ниже)

var div = document.getElementById("dom");
var variable= div.textContent;
var test = [{"num":"1","ID":"1","statut":"telecharge",{"num":"2","ID":"400","statut":"telecharge"}]
console.log(variable)
console.log(typeof variable)

Ответы [ 3 ]

1 голос
/ 30 марта 2020

textContent элемента будет всегда возвращать строку, независимо от содержимого. Если у вас есть что-то действительное JSON как textContent элемента, вы можете превратить его в объект с помощью JSON.parse:

const div = document.getElementById("dom");
const json = div.textContent;
const arr = JSON.parse(json);
for (const { num } of arr) {
  console.log(num);
}
<div id="dom">[{"num":"1","ID":"1","statut":"telecharge" },{"num":"2","ID":"400","statut":"telecharge"}]</div>
0 голосов
/ 30 марта 2020

Ответ от php - «строка». Итак, вам нужно проанализировать его, чтобы получить ответ в переменной с именем «response», затем сделать следующее и проверить: var response =; var resObj = JSON .parse (response); Теперь проверьте этот resObj.

Я думаю, что вы очень плохо знакомы с JavaScript, поэтому я просто показываю вам ваш код с небольшими изменениями для вашего лучшего понимания и решения. Необходимо прочитать комментарии, они помогут вам понять причины.

<html>
 <body>
 
	<div id="dom">[{"num":"1","ID":"1","statut":"telecharge" },{"num":"2","ID":"400","statut":"telecharge"}]</div>

 <script>
	var div = document.getElementById("dom");
	var variable= div.textContent;
	
	//Here, It is parse string to JSON (object)
	var test = JSON.parse(variable);
	
	//Here it is string because you just fetch text (datatype string) from div
	console.log(variable)
	console.log(typeof variable)
	
	//So, here its data type is object
	console.log(test)
	console.log(typeof test)
	
 </script>
 </body>

</html>
0 голосов
/ 30 марта 2020

PHP выводит простой текст с некоторыми заголовками, которые указывают, какой это тип вывода (HTML / JSON)

Теперь в вашей ситуации вам нужно JSON.parse(response) для преобразования JSON строки JS Объект

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