Javascript 如何使用JSON数据重新拼合HTML文本
从api接收数据并转换为JSON格式,但每次尝试更改HTML中的选定元素时,都会得到未定义或对象Obejct 我尝试了JSON.parse/JSON.stringify。我试过innerHTML、innerText、textContent。我试过打圈Javascript 如何使用JSON数据重新拼合HTML文本,javascript,html,json,Javascript,Html,Json,从api接收数据并转换为JSON格式,但每次尝试更改HTML中的选定元素时,都会得到未定义或对象Obejct 我尝试了JSON.parse/JSON.stringify。我试过innerHTML、innerText、textContent。我试过打圈 HTML <p id="lang">C++</p> 需要段落标记中的C++来改变数据中的java。如果Jquery能让这变得更容易,我也希望知道它是如何工作的。因为您介绍的数据模型将书籍作为一个数组,所以您需要这样做 da
HTML
<p id="lang">C++</p>
需要段落标记中的C++来改变数据中的java。如果Jquery能让这变得更容易,我也希望知道它是如何工作的。
因为您介绍的数据模型将书籍作为一个数组,所以您需要这样做
data.book[0].language
0
是要显示的任何书籍的索引
data = {
"book": [
{
"id":"01",
"language": "Java",
"edition": "third",
"author": "Herbert Schildt"
}
]
};
language.innerHTML = data.book[0].language;
这是行不通的,因为书是一组对象,而不是单个对象。所以您需要使用data.book[0]。语言
另外,这里不需要使用JSON.stringify
,如果您从API接收到JSON字符串,您应该使用JSON.parse
下面是代码正确运行的示例:
来自
stringify()方法将JavaScript对象或值转换为JSON字符串
因此,您的代码似乎与您声明的意图背道而驰
let data = {
"book": [
{
"id":"01",
"language": "Java",
"edition": "third",
"author": "Herbert Schildt"
}
]
};
之后,数据已经包含一个对象
data = JSON.stringify(data);
现在,数据
包含一个字符串。因此,data.book
自然会产生一个未定义的值
但是,如果您要以实际JSON的形式接收数据,例如
let dataJSON = '{"book":[{"id":"01","language":"Java","edition":"third","author":"Herbert Schildt"}]}';
然后,您可以使用以下方法提取语言值:
let data = JSON.parse(dataJSON);
let bookLanguage = data.book[0].language;
language.innerText = bookLanguage;
请注意一书
中的数组下标。因为在您的示例中,它包含一个对象数组,所以您需要确保在其中下标。解析时,data.book[0]。language
,包含language
属性的对象在数组中。data
不是JSON。它是一个物体。JSON是一种用于存储或传递数据的文本格式。
let data = JSON.parse(dataJSON);
let bookLanguage = data.book[0].language;
language.innerText = bookLanguage;