如何在 EJS 中检索对象内部的对象
How to retrieve an object inside an object in EJS
我正在尝试检索下面 JSON 的 "info" 部分。正如您在我的代码中看到的那样,我使用
<%= person['person_details']%>
检索 JSON 的那一部分。这个returns[对象对象]。我想要做的是检索 JSON a.k.a 的信息部分中的所有内容:"jim" "bob" "true" 和 "Two guys walk into a bar, one says: ow!"。一些 JSON 没有相同的字段(我在下面添加了另一个示例)。我试过做...
<%= person['person_details'][0][1]%>
但这会返回一个错误。如果我删除 [1],它会在我的下拉菜单中返回一个空数量。
<div class="personForm">
<form>
Select Parameters
<select id="personIdList">
<% data1.forEach(function(person) {%>
<option><%= person['person_details']%>
<% }); %></option>
</select>
</form>
</div>
//JSON THAT IM ATTEMPTING TO EXTRACT
"person_details": {
"info": {
"name": "Jim",
"lastName": "Bob",
"isMale": true,
"favJoke": "Two guys walk into a bar, one says: ow!"
}
},
//EXAMPLE 2
"person_details": {
"info": {
"email": "bobsmit@gmail.com",
"lastName": "tim",
"isMale": true,
"momMaidenName": "felicia"
}
},
//EXAMPLE 3 (info changes to information)
"person_details": {
"information": {
"email": "bobsmit@gmail.com",
"lastName": "tim",
"isMale": true,
"momMaidenName": "felicia"
}
},
你需要遍历每个人各自的键 person_details
。从那里您将使用键访问值。
例如:
<% data1.forEach(function(person) {%>
<option>
<% Object.keys(person.person_details.info).forEach(function(key) { %>
<%= person.person_details.info[key] %>
<% }); %>
</option>
<% }); %>
这是一种动态方法,适用于您的 info
哈希中的任何一组 key/values。
如果您的 person_details
信息哈希包含不同的名称,您可以在循环中对其进行猴子修补(尽管我建议您改为规范化数据并使用第一个示例)。
<% data1.forEach(function(person) {%>
<% var infoKey = infoKey = Object.keys(person.person_details)[0]; %>
<option>
<% Object.keys(person.person_details[infoKey]).forEach(function(key) { %>
<%= person.person_details[infoKey][key] %>
<% }); %>
</option>
<% }); %>
在此示例中,您动态查找信息键的名称并将其设置为 infoKey
变量。从那里您可以将其用作访问器。
我正在尝试检索下面 JSON 的 "info" 部分。正如您在我的代码中看到的那样,我使用
<%= person['person_details']%>
检索 JSON 的那一部分。这个returns[对象对象]。我想要做的是检索 JSON a.k.a 的信息部分中的所有内容:"jim" "bob" "true" 和 "Two guys walk into a bar, one says: ow!"。一些 JSON 没有相同的字段(我在下面添加了另一个示例)。我试过做...
<%= person['person_details'][0][1]%>
但这会返回一个错误。如果我删除 [1],它会在我的下拉菜单中返回一个空数量。
<div class="personForm">
<form>
Select Parameters
<select id="personIdList">
<% data1.forEach(function(person) {%>
<option><%= person['person_details']%>
<% }); %></option>
</select>
</form>
</div>
//JSON THAT IM ATTEMPTING TO EXTRACT
"person_details": {
"info": {
"name": "Jim",
"lastName": "Bob",
"isMale": true,
"favJoke": "Two guys walk into a bar, one says: ow!"
}
},
//EXAMPLE 2
"person_details": {
"info": {
"email": "bobsmit@gmail.com",
"lastName": "tim",
"isMale": true,
"momMaidenName": "felicia"
}
},
//EXAMPLE 3 (info changes to information)
"person_details": {
"information": {
"email": "bobsmit@gmail.com",
"lastName": "tim",
"isMale": true,
"momMaidenName": "felicia"
}
},
你需要遍历每个人各自的键 person_details
。从那里您将使用键访问值。
例如:
<% data1.forEach(function(person) {%>
<option>
<% Object.keys(person.person_details.info).forEach(function(key) { %>
<%= person.person_details.info[key] %>
<% }); %>
</option>
<% }); %>
这是一种动态方法,适用于您的 info
哈希中的任何一组 key/values。
如果您的 person_details
信息哈希包含不同的名称,您可以在循环中对其进行猴子修补(尽管我建议您改为规范化数据并使用第一个示例)。
<% data1.forEach(function(person) {%>
<% var infoKey = infoKey = Object.keys(person.person_details)[0]; %>
<option>
<% Object.keys(person.person_details[infoKey]).forEach(function(key) { %>
<%= person.person_details[infoKey][key] %>
<% }); %>
</option>
<% }); %>
在此示例中,您动态查找信息键的名称并将其设置为 infoKey
变量。从那里您可以将其用作访问器。