我知道这个问题之前在这个论坛上被问过好几次了。但这些都没有解决我的问题。我正在使用 Jmeter 发布内容类型为“application/json”的 json 字符串 我的 Spring mvc 应用程序很高兴使用它并将其转换为 Java 对象。但是,当我发送带有反斜杠的字符串时,一切似乎都崩溃了。这是我的 Json 输入字符串
{"signup":{"firstName":"joe", "lastName":"beedu","email":"jb1407874596956@hotmail.com",
"password":"O;\l-wslD6RQ5@M)","confirmPassword":"O;\l-wslD6RQ5@M)",
"picImage":[81,109,81,109,109,81,109,109,89]}}
注意:密码字段有一个反斜杠。稍后再谈。
这是我的java类。
@JsonRootName(value = "signup")
@XmlRootElement(name = "signup")
public class Signup {
private String firstName;
private String lastName;
private String email;
private String password;
private String confirmPassword;
private byte[] picImage;
}
删除了 getter/setter 以及验证注释。
问题 1:当我使用“O;\l-wslD6RQ5@M)”之类的额外斜杠手动转义密码字段值时,我的 Spring mvc Web 应用程序很高兴,但不会自动为我转义额外的反斜杠。我期待我的 spring 转换器 MappingJackson2HttpMessageConverter 读取 json 有效负载并为我做神奇的 unescape 事情,但事实并非如此。如果我手动取消转义 json json 对象中的每个字段,那将非常难看。这里有什么帮助来解决这个问题吗?
问题 2:在客户端,我尝试了几种不同的方法来查看是否有任何库自动转义 Json 对象中的字符串。给定一个像上面这样的原始 json 字符串,有没有办法转义进入 json 对象的字符串?我试过,来自apache escapeJson的StringEscapeUtils,它没有用。我也试过 json-lib。他们都无法处理字符串“O;\l-wslD6RQ5@M)”。在将 json 字符串添加到 Http Body 之前,我必须手动添加额外的反斜杠。
我想使用一个客户端库来转义 json 字符串字段,并在服务器端进行转义。我非常感谢你们阅读了一个冗长的问题。我在这个上浪费了一天。我希望你们能给我一个答案或至少一个方向。
谢谢斯里