Javascript JSON API问题
我想知道为什么json被包装在()之间;在这个json api中,我想使用它,但我无法找到方法,谢谢大家 这是api的一个示例: 以及api的页面: PS:我正在apache cordova项目中使用javascriptJavascript JSON API问题,javascript,jquery,ajax,cordova,Javascript,Jquery,Ajax,Cordova,我想知道为什么json被包装在()之间;在这个json api中,我想使用它,但我无法找到方法,谢谢大家 这是api的一个示例: 以及api的页面: PS:我正在apache cordova项目中使用javascript 编辑:我刚刚开始使用API,所以如果有人对这个问题感到不安,我很抱歉。问题是您的API没有返回正确的JSON。它返回类似于({property JSON here})的内容。(和)在JSON上无效,因此需要先修剪它们,然后解析JSON 编辑: 我将假设您正在使用fetch,因此
编辑:我刚刚开始使用API,所以如果有人对这个问题感到不安,我很抱歉。问题是您的API没有返回正确的JSON。它返回类似于
({property JSON here})
的内容。(
和)
在JSON上无效,因此需要先修剪它们,然后解析JSON
编辑:
我将假设您正在使用fetch,因此为了正确地修剪它,您可以执行以下操作:
fetch(/*您的fetch参数在这里*/)
.then(x=>x.text())//将响应转换为文本
。然后(x=>x.replace(//^\(.*);$/,“$1”)//删除有问题的字符并保留其余字符
.then(JSON.parse)//解析经过清理的输出
您可以打开chrome控制台立即运行的示例如下:
fetch(“http://www.etnassoft.com/api/v1/get/?id=589", {
“凭证”:“包括”,
“标题”:{
“接受”:“text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed exchange;v=b3”,
“接受语言”:“en GB,en;q=0.9,es;q=0.8,es;q=0.7,en US;q=0.6”,
“缓存控制”:“无缓存”,
“pragma”:“无缓存”,
“升级不安全的请求”:“1”
},
“推荐人策略”:“降级时无推荐人”,
“主体”:空,
“方法”:“获取”,
“模式”:“cors”
}).然后(x=>x.text())
。然后(x=>x.replace(/^\(.*);$/,“$1”))
.then(JSON.parse)
在哪里可以看到(//)?在每个api链接的末尾都有一个api。它的api与JS有什么关系?我想通过JS读取和使用里面的数据。在你给出的链接中没有/
。还要注意的是,一个更大的问题是,它不是有效的JSON,因为它被包装在()
中,并且后面有一个代码>是的,这就是我想知道如何修剪它。我可以编辑我的答案来告诉你如何修剪,但首先我需要知道你是如何获取数据的。您正在使用本机获取吗?或者其他图书馆?Axios?Request.js?