'\'在后台作业解析中输入输入

时间:2015-06-05 11:35:16

标签: javascript parse-platform

This

当我运行这个后台作业时,这是我得到的日志。

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也无效

5 个答案:

答案 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的开头。第二个,第三个,第四个和第五个是字符串“(未解析),因此\表示非解析字符。最后"表示字符串的结尾

请考虑阅读:http://en.wikipedia.org/wiki/Escape_character

答案 4 :(得分:0)

  • 当你在"内时,你不需要逃离'(和反向)
  • 用于打印\通常为\\
  • 如果您在"并且需要打印",那么如果您还可以使用\"'中,需要打印\'

:)