我正在使用应用程序脚本,并具有:
var json = UrlFetchApp.fetch(url);
var objArray = JSON.parse(json)
Logger.log(objArray);
const indices = objArray.map(({ ' #':id }) => id);
Logger.log(indices);
Logger.log(objArray)提供:
[{ #=4626, E=Yes, Assd $=, Eager=High, New $=, State=Louisiana, Date=06/15/20, County=St. Martin Parish}, { #=4623, State=South Carolina, E=Yes, Acres=1.50, Eager=Low, Date=06/15/20, New $=}, { County=Sedgwick County, Eager=High, Acres=0.13, New $=, E=No, #=4620, Date=06/15/20, State=Kansas}, ....
Logger.log(indices)提供:
[null, null, ....... null]
但是以下内容:
const values = [
{ " #": "4596", " E": "Yes"},
{ " #": "4597", " E": "No"},
{ " #": "4598", " E": "Maybe"},
]
const indices = values.map(({ " #" : id }) => id);
console.log(indices);
在应用程序脚本中运行时会产生:
[4596,4597,4598]
为什么第一个不起作用?
编辑:
json:
[{" #":"4626"," E":"Yes"," Date":"06/15/20"," County":"St. Martin Parish"," State":"Louisiana"," Acres":"15.00"," Eager":"High"},{" #":"4623"," E":"Yes"," Date":"06/15/20"," County":"Greenville County"," State":"South Carolina"," Acres":"1.50","Eager":"Low"},
这个答案怎么样?
通过您的回复网址,我们可以了解问题的原因。当从的URL中检索到值时https://ssjbhokibi.execute-api.us-east-1.amazonaws.com/dev/hello/get
,我可以确认这些值,例如样本输入值,也可以确认相同的情况。当我检查字符时,可以确认
的 #
不是空格0020
,00A0
这是不间断空格。我认为这是您遇到问题的原因。
而且,由检索的值UrlFetchApp.fetch(url)
是HTTPResponse类的对象。因此在此修改中,getContentText()
用于检索文本值。
为了消除您的问题,如何进行以下修改?
在这种模式下,您可以通过替换0020
为来修改脚本00A0
。
var json = UrlFetchApp.fetch(url);
var objArray = JSON.parse(json)
const indices = objArray.map(({ ' #':id }) => id);
var json = UrlFetchApp.fetch(url);
var objArray = JSON.parse(json.getContentText());
const indices = objArray.map(({ ' #':id }) => id);
00A0
like发布上面修改过的脚本时' #'
,似乎由Markdown的渲染00A0
自动更改为0020
。因此,在这种情况下,当您直接看到我的答案的来源时,您可以使用查看已修改的脚本00A0
。在这个模式中,关键是通过将创建00A0
与String.fromCharCode(160)
,并且该值被检索。
var json = UrlFetchApp.fetch(url);
var objArray = JSON.parse(json)
const indices = objArray.map(({ ' #':id }) => id);
var json = UrlFetchApp.fetch(url);
var objArray = JSON.parse(json.getContentText());
const indices = objArray.map(({[String.fromCharCode(160) + "#"]: id}) => id);
要么
var json = UrlFetchApp.fetch(url);
var objArray = JSON.parse(json.getContentText());
const indices = objArray.map(e => e[String.fromCharCode(160) + "#"]);
0020
用于#
。因此,我对此一无所知。但是当我使用00A0
like更新答案时' #'
,我注意到它00A0
会自动更改为0020
。另一方面,我可以确认,当通过单击“编辑”按钮确认源时,' #'
使用00A0
。而且,当我确认你的问题的来源,它可以确认的空间[{" #":"4626",
使用00A0
。当我测试此渲染Markdown时,我注意到似乎在运行Markdown渲染时,00A0
已更改为0020
即使是用脚本编写的。这样,从您添加的样本输入值中我就不会注意到该问题。从这种情况来看,我认为之前发布的相同问题可能与此也有相同的情况,这可能是重要的一点。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句