json.tojsonstring转义符
时间: 2023-11-08 09:50:32 浏览: 115
json.toJsonString方法在转义字符串时会添加多余的反斜杠。为了解决这个问题,可以使用StringEscapeUtils.unescapeJavaScript方法来去除多余的反斜杠。这个方法属于org.apache.commons.lang包,可以通过在pom.xml文件中添加以下依赖来引入commons-lang库:
```xml
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
```
使用StringEscapeUtils.unescapeJavaScript方法将转义后的字符串(jsDataStr)进行反转义,即可得到不含多余反斜杠的结果。
相关问题
JSON.toJSONString() 易受攻击 怎么办
JSON.toJSONString() 是 Java 中的一个方法,用于将对象转为 JSON 字符串。关于 JSON.toJSONString() 易受攻击的问题,可以通过以下几种方式来解决:
1. 输入验证:在将对象转换为 JSON 字符串之前,对输入进行验证和过滤,确保输入的数据符合预期的格式和内容。可以使用正则表达式、白名单或黑名单等方式进行验证。
2. 转义特殊字符:在将对象转换为 JSON 字符串时,需要对特殊字符进行转义,以防止攻击者利用特殊字符进行注入攻击。常见的特殊字符包括引号、尖括号、斜杠等。
3. 使用安全的 JSON 库:选择使用经过广泛测试和验证的安全的 JSON 库,这些库通常会提供一些安全机制来防止攻击,比如自动转义特殊字符、限制最大字符串长度等。
4. 限制字段数量和长度:在转换对象为 JSON 字符串时,可以限制字段的数量和长度,以防止攻击者构造过大或过多的字段导致系统崩溃或性能下降。
5. 使用安全配置:根据具体需求,对 JSON 序列化的配置进行安全设置,比如禁用循环引用、禁用自动类型转换等,以减少潜在的安全风险。
总之,通过输入验证、字符转义、使用安全的 JSON 库、限制字段数量和长度以及安全配置等方式,可以有效防止 JSON.toJSONString() 方法的安全问题。
在使用JSON.toJSONString(bdResult.getOrderDataList())的时候如何让其中的multiOutlayStr字段保持原有的形式不被json格式化
在将Java对象转换成JSON字符串时,如果你想保留`multiOutlayStr`字段的原始格式(如它可能是一个包含特殊字符的字符串),而不是将其自动转义为双引号包围的字符串,你可以设置`Ture`或`"true"`作为`json.toJSONString()`方法的一个参数,比如`ignoreNonFieldGetter`。这个选项告诉工具类不对非属性访问方法返回的结果做格式化处理。
以下是示例代码:
```java
String json = JSON.toJSONString(bdResult.getOrderDataList(), // your object
SerializerFeature.WriteMapNullValue, // other optional settings
SerializerFeature.WriteDateUseDateFormat,
SerializerFeature.WriteClassName,
SerializerFeature.WriteNonFieldGetterAsString); // 这一行就是让non-field getter保持原样
```
在这里,`WriteNonFieldGetterAsString`是关键的参数,它会使得`getMultiOutlayStr()`这样的方法返回的值不会被自动转义为JSON格式。
阅读全文