我正在尝试循环一个EJS文件,但一直遇到一个奇怪的错误。首先,我的数据如下:
{
"name": "Marina Silva",
"info": [{
"periodBegins": "Sun Apr 14 23:48:36 +0000 2011",
"periodFinishes": "Sun Apr 7 23:48:36 +0000 2011",
"words": [{"text": "evangelico", "size":32},
{"text": "PT", "size": 12},
{"text": "Rede Solidariedade", "size": 34},
{"text": "catolico", "size": 23}]
},
{
"periodBegins": "Sun Apr 7 23:48:36 +0000 2011",
"periodFinishes": "Sun Apr 1 23:48:36 +0000 2011",
"words": [{"text": "Bolsonaro", "size":32},
{"text": "esperanças", "size": 12},
{"text": "deserto", "size": 34},
{"text": "oasis", "size": 23}]
}
]
}
从控制器文件中,我按原样返回它,而不调用它上面的JSON.stringify()。 在我的视图文件中,我可以使用
将其打印到屏幕上<%= politician %>
但是当我尝试使用
访问'name'属性时<table>
<% for(var i=0; i < politician.length; i++) { %>
<tr>
<td><%= politician.length %></td>
<td><%= politician[i].name %></td>
</tr>
<% } %>
</table>
我是1 - 无法获取名称和2 - 它表示我的对象的大小为563,这是包含数据的字符串的大小。但是,它对我没有意义,因为我认为它应该被视为JSON对象而不是字符串。 我尝试在数据对象中使用JSON.parse(),但我在视图中得到的只是[object Object]。如何循环访问我的JSON数据并将其显示在表格中?
非常感谢你!
答案 0 :(得分:0)
你给定的json不是简单的json对象,但是json array object表示“单个数组中的多个对象”
这里我只是从JSON Array对象解析名称值来向您展示如何 你可以解析它以获得所需的价值
var jsondata = '{"name":"Marina Silva","info":[{"periodBegins":"Sun Apr 14 23:48:36 +0000 2011","periodFinishes":"Sun Apr 7 23:48:36 +0000 2011","words":[{"text":"evangelico","size":32},{"text":"PT","size":12},{"text":"Rede Solidariedade","size":34},{"text":"catolico","size":23}]},{"periodBegins":"Sun Apr 7 23:48:36 +0000 2011","periodFinishes":"Sun Apr 1 23:48:36 +0000 2011","words":[{"text":"Bolsonaro","size":32},{"text":"esperanças","size":12},{"text":"deserto","size":34},{"text":"oasis","size":23}]}]}';
var parseVal = JSON.parse(jsondata);
console.log(parseVal.name)