AWS Lambda C#函数中的JsonReaderException

时间:2017-10-06 05:28:55

标签: c# amazon-web-services aws-lambda aws-api-gateway querystringparameter

我在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;
        }

这有什么问题?答案将非常感谢。谢谢!

更新

Error Message

1 个答案:

答案 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) {
...
}