在这种情况下,为什么json .parse()不能从json字符串中获取信息?

Why JSON.parse() won't get me the information from a json string in this case?

本文关键字:json 字符串 获取 信息 不能 这种情况下 为什么 parse      更新时间:2023-09-26

我有一个json格式的字符串,我想在其中选择一个特定的项目,并使用。innerhtml在屏幕上输出它。

我有一个名为myData的字符串,格式为JSON。

使用PHP从mySQL数据库中获取的字符串。

要获得它们,我使用以下命令:

我取回的项目,我编码成json格式的字符串数组

            $faqs = $traerFaqs->fetchAll(PDO::FETCH_ASSOC);     
            $stringFaqs = json_encode($faqs);       

然后我把它放在一个对DOM可用但对视图隐藏的项中:

            echo '<div id="hiloFaqs" style="display: none;">';
            echo $stringFaqs;
            echo '</div>';
            ?>

这是我得到的字符串:

[
{"faqID":"1","tituloFaq":"Como accedo al material del Curso?","cuerpoFaq":"
Lorem ipsum dolor sit amet.<'/p>"
},
{"faqID":"2","tituloFaq":"Como cancelo los pagos del Curso?","cuerpoFaq":"
At vero eos et accusam et justo duo.<'/p>"
},
{"faqID":"3","tituloFaq":"Que documentacinn debo entregar?","cuerpoFaq":"
Stet clita kasd gubergren, no sea takimata sanctus.<'/p>"
},
{
"faqID":"4","tituloFaq":"Por que estoy suspendido?","cuerpoFaq":"
Sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.<'/p>"
},{
"faqID":"5","tituloFaq":"Por que estoy pendiente?","cuerpoFaq":"
Kasd gubergren, no sea takimata sanctus est.<'/p>"
}
]

现在,我想得到一个特定的项目,由于某种原因,我不能。我是JS新手,所以可能我在这里忘记了一些非常愚蠢的东西:

var faqs = document.getElementById("hiloFaqs");
var myData = faqs.textContent;
faq = JSON.parse(myData);
$('#output').append(faq[0]['tituloFaq']);

在我的html文件中确实有输出,如:<span id="output"></span>,但没有打印出来。

faq[0]['tituloFaq']不应该让我Como接受所有材料吗?输出?

我错过了什么?

首先,不需要从隐藏文本节点中捕获JSON。直接将其作为全局javascript变量内联赋值。

<script>
var MY_DATA = JSON.parse(<?=$stringFaqs;?>);
// or
var MY_DATA = JSON.parse(<?php echo $stringFaqs; ?>);
</script>

试试