Javascript 如何将JSON数组与模板文字一起使用?

Javascript 如何将JSON数组与模板文字一起使用?,javascript,arrays,json,fetch,Javascript,Arrays,Json,Fetch,我正在学习javascript,并使用Fetch从URL检索和解析一些JSON。控制台记录JSON数组,但当我尝试在模板文本中使用它时,控制台中出现错误“positions not defined”。这就是我被挂断的地方,因为大多数示例和教程都没有显示JSON格式的方式 我如何访问它,以便在模板文本中使用它,或者有更好的方法吗?我不想循环使用它,因为我希望能够将某些值放置在我需要或想要的位置 我正在使用的代码示例: let positionData = new Request('URL_TO_J

我正在学习javascript,并使用Fetch从URL检索和解析一些JSON。控制台记录JSON数组,但当我尝试在模板文本中使用它时,控制台中出现错误
“positions not defined”
。这就是我被挂断的地方,因为大多数示例和教程都没有显示JSON格式的方式

我如何访问它,以便在模板文本中使用它,或者有更好的方法吗?我不想循环使用它,因为我希望能够将某些值放置在我需要或想要的位置

我正在使用的代码示例:

let positionData = new Request('URL_TO_JSON')

  fetch(positionData)
    .then(function(response){
        return response.json();
    })
    .then(function(json){

        document.getElementById('online').innerHTML = `THERE ARE CURRENTLY ${positions.lenght} CHASERS LIVE`;

        document.getElementById('name').innerHTML = `${positions[0].name}`;

        console.log(json)
    })
    .catch(function(err) {
        console.log(`Error: ${err}` )
      });
在控制台中,它显示JSON数组,如下所示:

{positions: Array(2)}
positions: Array(2)
0: {report_at: "2019-04-26 20:29:29", lat: "33.0851707", lon: "-96.8177032", elev: "0", dir: "0", …}
1: {report_at: "2019-04-26 05:07:29", lat: "33.0173721", lon: "-96.5511093", elev: "0", dir: "0", …}
length: 2
__proto__: Array(0)
__proto__: Object
根据我一直在看的教程和视频,我需要做的就是这样,我认为这就是我的问题所在,因为JSON的前缀是
位置

document.getElementById('name').innerHTML = `${positions[0].name}`;

但我在控制台中得到“位置未定义”错误

看起来
positions
是您要返回的名为
json
的对象中的一个键

试用

document.getElementById('name').innerHTML = `${json.positions[0].name}`;

您的数据位于包含
位置的
json
中,因此您应该说:

document.getElementById('online').innerHTML = `THERE ARE CURRENTLY ${json.positions.length} CHASERS LIVE`;`

document.getElementById('name').innerHTML = `${json.positions[0].name}`;

请注意,
lenght
也应该拼写为
length
:-)

尝试使用json.positions[0].name
${json.positions[0].name}
。您能解释一下为什么我需要在它前面加上
json
?这是因为
.then(function(json){
?如果是像
foo
这样的东西,我会使用它吗?也是因为json包含一个键吗?如果它没有这个键,它只会是
${json.length}
,举个例子吗?没错。
中的变量
json
。然后(function(json){…
可以被调用任何你想要的东西。在承诺中(比如请求)
。然后应向
方法发送一个回调函数,该函数将在数据可用时接收数据。当承诺解析时,请求会传递一些JSON数据。您的函数在名为
JSON
的变量中接收数据。