当我运行这个后台作业时,这是我得到的日志。
I2015-06-05T11:17:37.360Z]v163: Ran job DeleteAccount with:
Input: "{\"username\":\"9369190589\"}"
request.params.username未定义,因为'\'存在。所以我无法访问用户名。如何从作业中访问用户名
更新: 这是我正在尝试的代码部分
Parse.Cloud.job("DeleteAccount", function(request, response){
var id = request.object.get("username");
console.log("id = " + id);
});
这是错误: I2015-06-05T11:06:31.839Z] v163:Ran job DeleteAccount with:
输入:“{\”id \“:\”9369190589 \“}”
失败:TypeError:无法调用未定义的方法'get'
甚至request.params.username也无效
答案 0 :(得分:2)
由于我没有足够的声誉来评论,我将在这里做出贡献。
我和你有同样的问题。另外,我注意到在使用REST请求调用作业时,输入日志打印为
I2015-06-12T16:18:16.285Z]
I2015-06-12T16:18:16.503Z]v44: Ran job XXX with:
Input: {"api":"2oil4z6k","name_asset":"SX5E"}
Result: undefined
REST请求的参数声明为 -d' {" api":" 2oil4z6k"," name_asset":" SX5E"}'
当使用预定云作业调用作业时,日志将打印为
I2015-06-12T16:23:27.259Z]
I2015-06-12T16:23:27.432Z]v44: Ran job XXX with:
Input: "{\"api\":\"2oil4z6k\", \"name\":\"SX5E\"}"
Failed with: An error has occurred
这个参数在参数输入中声明为{" api":" 2oil4z6k"," name":" SX5E&#34 ;}
因此,调度云作业似乎正在转义JSON对象中的每个字符串。
解决方案是在request.params
上调用JSON.parse()data = JSON.parse(request.params);
希望有所帮助!
答案 1 :(得分:0)
内部"
需要转义为不关闭封闭的"
。
比较语法高亮:
"a "string""
"a \"string\""
\
告诉您以下字符不应以特殊方式运行。在这种情况下,它意味着"这只是里面的引号字符串,不要关闭字符串!
答案 2 :(得分:0)
\
用于您要逃避的escape the literal。所以在你的情况下,第一个"
是字符串的开头,最后一个也是。{中间使用的"
使用\
答案 3 :(得分:0)
"{\"username\":\"9369190589\"}"
第一个"
定义了String的开头。第二个,第三个,第四个和第五个是字符串“(未解析),因此\
表示非解析字符。最后"
表示字符串的结尾
答案 4 :(得分:0)
"
内时,你不需要逃离'
(和反向)\
通常为\\
"
并且需要打印"
,那么如果您还可以使用\"
在'
中,需要打印\'
:)