我知道此论坛之前曾多次询问此问题。但它都没有解决我的问题。 我正在使用Jmeter发布内容类型为“application / json”的json字符串 我的Spring mvc应用程序很高兴使用它并将其转换为Java Object。 但是,当我发送带有反斜杠的字符串时,一切似乎都崩溃了。 这是我的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网络应用程序很高兴,但不会自动为我提供额外的反斜杠。我期待我的spring转换器MappingJackson2HttpMessageConverter读取json有效负载并为我做魔术unescape的事情,但事实并非如此。如果我手动浏览json json对象中的每个字段,那将是非常难看的。有什么帮助可以解决这个问题吗?
问题2:在客户端,我尝试了几种不同的方法来查看是否有任何库自动转义Json对象中的字符串。给定上面的原始json字符串,有没有办法逃避进入json对象的字符串?我试过,来自apache escapeJson的StringEscapeUtils,它没有用。我也试过了json-lib。他们都没有能够处理 字符串“O; \ l-wslD6RQ5 @ M)”。在将json字符串添加到Http Body之前,我不得不手动添加额外的反斜杠。
我想使用一个客户端库来逃避json字符串字段,也可以在服务器端访问unescape。我非常感谢你们阅读一个冗长的问题。我在这一天浪费了一天。我希望你们能帮我解决问题,或者至少是一个方向。
由于 斯