我正在创建一个 API(用 Java 编写),我通过无服务器将其部署到 AWS Lambda 函数的端口。API 功能的所有方面都很棒,除了返回的请求在所有引号前都包含“\”字符。
从这个角度来看,我有一个 person 类,其中包含 name (String) 和 mood (String) 的实例变量。然后我的类使用这个类来获取和创建一个 Person 对象,然后使用 Jackson 将其解析为 JSON 格式。这是返回到处理函数(对于 lambda)并显示为“对象主体”的内容。
public class Person{
String name;
String mood;
//getters and setters and constructor
}
然后,稍后会有其他类的东西,比如
Person person = new Person("bob", "good");
这将被传递到我的方法中,该方法应该将事物转换为 JSON:
private String convStrToJson(Person person) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(person);
return json;
}
如果我要在输出中打印它,我会得到类似的东西:
{"name":"bob","mood":"good"}
这是我想要和期待的。但是,当通过 GET 请求部署和调用时,结果是:
"{\"name\":\"bob\",\"mood\":\"good\"}"
我尝试了几种策略,包括对解析方法的添加,例如:
json = json.replace("\"", "");
从两个输出中完全删除引号,或者:
json = json.replace("\\","");
这根本没有效果。我还尝试了这两种方法作为 replaceAll 方法,这只会让事情变得更糟。我不确定我还能做些什么来摆脱这些“\”字符,我理解它们为什么在那里,但我不知道如何阻止它。任何帮助表示赞赏。