Я новичок в Java, поэтому это не может быть связано с AWS лямбдой вообще. Тем не менее, лямбда принимает такие свободы с объектами ввода/вывода, которые я предполагаю, что это преступник.AWS lambda java response не поддерживает вложенные объекты?
Я строй своей первой функции лямбды и хочу вернуть простую структуру JSON (упрощенную далее в данном примере):
{
"document" : "1",
"person" : { "name" : "John Doe" }
}
Однако, когда лямбда сериализует JSON всегда устанавливает «лицо» к пустой объект!
{
"document": "1",
"person": {}
}
Вот мой код в полном объеме:
- test1.java
package handler_test;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
public class test1 implements RequestHandler<String, ResponseClass> {
@Override
public ResponseClass handleRequest(String input, Context context) {
return new ResponseClass();
}
}
- ResponseClass.java
package handler_test;
import org.json.JSONException;
import org.json.JSONObject;
public class ResponseClass {
String document;
JSONObject person;
public String getdocument() {
return "1";
}
public JSONObject getperson() {
try {
return new JSONObject("{ \"name\" : \"John Doe\" }");
} catch (JSONException e1) {
System.out.println("error creating jsonobject");
return null;
}
}
public ResponseClass() {
}
}
Я попытался это десятки вариаций, используя объекты вместо JSONObjects, превращая getperson вывод в строку (которая работает, если я хотел строка) и т. д. Если я сохраню значения и распечатаю их в журнале, это нормально. Но как только я пытаюсь вернуть его через лямбда, он становится грушевидным. Я прикрепил сеть и не могу найти ничего более на объектах AWA-лямбда-джава за пределами кода примера приветствия Amazon, который включает только две строки. Любые предложения очень ценятся!
см это http://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-req-resp.html, http://docs.aws.amazon.com/ – Unknown
Также этот http://docs.aws.amazon.com/lambda/latest/dg/java-handler-using-predefined-interfaces.html – Unknown
Благодарю. Это код примера «приветствия», на который я ссылаюсь, который возвращает только простой объект. AWS не имеет образцов возврата чего-либо более сложного. Они упоминают, что если сериализация из коробки не работает для вас, вы можете написать свою собственную сериализацию JSON, но не говорите, как это сделать! Будучи новичком в java и лямбда, я в недоумении. (И, честно говоря, возвращение объекта JSON внутри объекта JSON не похоже на такой необычный запрос, что мне придется свернуть мои собственные инструменты, хотя никто больше не делает этого в лямбда.) – Gregg