【发布时间】:2016-08-07 00:03:36
【问题描述】:
使用 fetch 请求获取一些数据。 JSON 对象路径取决于字符串变量。我如何将字符串转换为可以在路径中作为数组引用的对象。这是我的代码:
var path = 'bob';
fetch(request)
.then(function(response) {
if (!response.ok) {
throw Error(response.statusText);
}
return response.json();
}).then(function(json) {
var data = json.message.path[0].text;
}).catch(function(error) {
console.log(error);
});
JSON:
{
"message": {
"bob": [
{
"name_id": "3351",
"name": "bob",
"text": "lorem ipsum"
},
{
"name_id": "34562",
"name": "bob",
"text": "lorem ipsum2"
}
]
}
基本上,path 定义了要在点表示法中使用的正确对象。但是 - 对象还必须能够引用数组。
有什么解决办法吗?
【问题讨论】:
-
“对象必须能够引用数组”是什么意思?
json和path的结构能具体举个例子吗? -
JSON 是有组织的,路径是一个数组,我需要获取该数组中的第一项。但我只能通过字符串引用路径。查看示例代码。
-
在你的例子中,
path不是一个数组,它是一个字符串...你的意思是你得到一个代表路径的字符串,然后你想将它转换成一个数组? -
为您的问题添加上下文/更多细节会有所帮助。
-
是的,这就是您使用数组的方式。或
var tmp = json.message[path]; ... tmp[0]- 结果相同。
标签: javascript arrays json string