【发布时间】:2021-10-08 00:26:05
【问题描述】:
我正在使用 fetch 从 amazon polly 获取语音视位作为文本文件,并尝试获取每个对象键时间和值键的值,但每次我尝试它都会给我一个未定义的错误,当我尝试使用控制台.log(out[i]);它只是给了我大括号中的第一个引号。我什至尝试将 JSON.parse(out) 添加到我的代码中,但它给了我一个 Uncaught (in promise) SyntaxError: Unexpected token { in JSON at position 39 错误。如果您需要查看我的源代码,我已将其附在下面。我还附上了这个问题的链接,一个显示我的文本文件的内容,另一个显示我在使用 JSON.parse 之前遇到的错误。希望对你有帮助。
var viseme = 'value';
var time = 'time';
var bracket = '}';
var jsonIndex = -1;
var itemHTML = '';
var number = '4';
fetch(url)
.then(res => res.text())
.then((out) => {
console.log("Checkout this JSON!", out);
console.log(out.substring(27, 37));
var jsonParsed = JSON.parse(out);
for(var i of Array(12).keys()) {
console.log(out[1]);
var anotherResJson = out[i]['@value'];
console.log("jsonParsed[",i,"][@value]:",anotherResJson);
}
})
.catch(error => {
throw error
});
【问题讨论】:
-
请勿发布代码图片!
-
out[i]将只是您的out字符串中的一个字符。因此,尝试访问字符串字符上的属性"@value"将给出undefined,因为字符串没有@value属性。如果您可以控制url端点及其返回的数据,那么您可以修复它,以便它以 JSON 格式返回,因为目前您拥有的不是有效的 JSON 字符串(因此为什么可以) t 用JSON.parse()解析它)。如果亚马逊不提供提供有效 JSON 的 API(您可能正在查看错误的端点),我会感到惊讶 -
欢迎来到 SO!我建议所有新用户访问How to Ask 以获取有关形成问题的提示。请注意,不建议发布代码或文本的图片,而是在问题正文中包含文本。祝你好运,编码愉快!
标签: javascript