我在visual studio 2017中使用c#创建了一个aws lambda函数,我遇到了参数问题。我想获得'querystringparameter' 但是每当我在FunctionHandler中放入一个参数时,我都会收到此错误。
{
"errorType": "JsonReaderException",
"errorMessage": "Unexpected character encountered while parsing value: {. Path '', line 1, position 1.",
"stackTrace": [
"at Newtonsoft.Json.JsonTextReader.ReadStringValue(ReadType readType)",
"at Newtonsoft.Json.JsonTextReader.ReadAsString()",
"at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadForType(JsonReader reader, JsonContract contract, Boolean hasConverter)",
"at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)",
"at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)",
"at Newtonsoft.Json.JsonSerializer.Deserialize[T](JsonReader reader)",
"at lambda_method(Closure , Stream , Stream , ContextInfo )"
]
}
这是我的示例FunctionHandler代码:
public string FunctionHandler(APIGatewayProxyRequest request, ILambdaContext context)
{
var sample = GetParameters(request.QueryStringParameters, "sample");
return sample;
}
这有什么问题?答案将非常感谢。谢谢!
更新
答案 0 :(得分:1)
异常表示您没有将参数作为有效的compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.+'//add this line also
格式传递。请确保以字符串引用的格式传递参数。
JSON
传递参数(以字符串引用格式)应如下所示:
public string myFunctionHandler(string param, ILambdaContext context){
....
}
如果你有一个对象:
"{ \"param\": \"value\" }"
在这种情况下,您可以像这样传递:
public string myFunctionHandler(JObject param, ILambdaContext context) {
...
}