AppleScript正在生成json而不是字符串

AppleScript正在生成json而不是字符串,applescript,Applescript,我的AppleScript正在生成JSON而不是普通字符串。这是密码 将lok设置为input2&“/Contents/” input2是一个变为字符串的变量。我得到这个错误: 无法将{“[输入2是什么]”,“/Contents/”}转换为类型字符串 我不明白发生了什么事。我什么都没打。当我单独调用input2时,它以纯文本的形式给出它。有人知道这里发生了什么吗?这不是json,而是AppleScript列表。 &操作符将另一个对象添加到列表中。如果您想将列表作为文本,则需要像这样强制它“作为文


我的AppleScript正在生成JSON而不是普通字符串。这是密码
将lok设置为input2&“/Contents/”

input2是一个变为字符串的变量。我得到这个错误:
无法将{“[输入2是什么]”,“/Contents/”}转换为类型字符串

我不明白发生了什么事。我什么都没打。当我单独调用input2时,它以纯文本的形式给出它。有人知道这里发生了什么吗?

这不是json,而是AppleScript列表。 &操作符将另一个对象添加到列表中。如果您想将列表作为文本,则需要像这样强制它“作为文本”

它不是JSON(显然是因为它不是JS),而是一个AppleScript列表,当您执行它时,它会向列表中添加另一个对象。要返回文本,请将其强制为“文本”,如下所示:


不要这样做:强制列表为文本会根据文本项分隔符产生不同的结果。使用:
将lok设置为(作为文本输入2)&“/Contents/”
。TBH我怀疑OP的第2项是一个文件说明符,例如,
POSIX文件“…”
,在这种情况下,使用
(输入的POSIX路径)
将其转换为POSIX路径字符串。如果它是一个已交付的字符串,并且未触及delimiers-我看不出问题。对于初学者来说,为什么要比必要的胡说八道更复杂呢?使用完全相同的运算符,代码的长度是完全相同的。唯一不同的是,你的版本还添加了一个令人讨厌的隐藏陷阱,它迟早会咬到用户,使其变得比必要的更复杂。有一些方法可以编写安全、健壮的代码,也有一些方法可以编写危险的恐怖代码。堆栈溢出是指前者;对于后者,请尝试。@foo@Pat_Morita请不要争辩,即使我使用了foo的答案。
set lok to (input2 & "/Contents/") as text
set lok to (input2 as text) & "/Contents/"