
1 daya 2016-11-18 12:22:20 +08:00 via Android 不是做 java 的,但是我看楼主的阐述,感觉这是防 XSS 的功能。 |
2 haohaozaici 2016-11-18 12:22:58 +08:00 读学校网站的 json 数据返回的也是这样,我在 android 端开发,就直接把所有 \ 去掉,再去掉首尾的 “” 。就跟正常 json 数据一样了。 |
3 jason19659 2016-11-18 12:28:53 +08:00 value 用 map 就没这问题了 |
4 jason19659 2016-11-18 12:29:41 +08:00 或者把 value 转成 json object 塞进去 |
5 fantastM 2016-11-18 13:19:45 +08:00 返回类型是 String 还是 Map |
6 reeco 2016-11-18 13:23:02 +08:00 value 上加注解 @JsonRawValue |
7 cs4814751 2016-11-18 13:43:36 +08:00 view 用什么模板引擎渲染的? |
8 ecpay 2016-11-18 13:49:29 +08:00 就喜欢你们这些不转义的 |
9 chocotan 2016-11-18 13:59:24 +08:00 jstl 跟 spring 标签上都有这个属性的 |
11 ZiLong 2016-11-18 15:41:50 +08:00 感觉是你的 value 是 String 类型,设成 String 类型会有这个问题 |
12 teemoer 2016-11-18 16:48:10 +08:00 <mvc:annotation-driven content-negotiation-manager="contentNegotiationManager"> <mvc:message-converters register-defaults="true"> <!-- 将 StringHttpMessageConverter 的默认编码设为 UTF-8 --> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <constructor-arg value="UTF-8" /> </bean> <!-- 将 Jackson2HttpMessageConverter 的默认格式化输出设为 true --> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="prettyPrint" value="true"/> </bean> </mvc:message-converters> </mvc:annotation-driven> <bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"> <property name="ignoreAcceptHeader" value="true" /> <property name="defaultContentType" value="application/json" /> <property name="mediaTypes" > <value> json=application/json xml=application/xml </value> </property> </bean> |
13 swim2sun 2016-11-18 16:51:53 +08:00 这不是 SpringMVC 的问题,因为你 value 的类型是 String ,所以 Jackson 自然会帮你转义以保证输出后 JSON 的这个字段的类型也是 String 。 你可以把 Value 的类型设置成 JsonNode ,或者其他对象。 你也可以试试 @reeco 说的`@JsonRawValue`注解。 |
14 Infernalzero 2016-11-18 17:15:16 +08:00 首先你 message converter 用的是啥,然后这个 value 又是怎么写的?不如把那段代码贴出来容易看出问题 |