fastjosn处理‘\‘反斜杠报错问题的处理

Spring MVC 使用fastjson做序列化反序列化时处理带有反斜杠’'等特殊字符的处理

一次在Spring mvc中引入 fastjson作为JSON解析工具类的时候,在接收含有特殊字符的JSON串时遇到了如下异常

 com.zhht.pps.controller.TobPpsOrderController.add() 参数: {
  "k" : "b38c04e4-6776-460c-8ff2-1c50b3cf872b",
  "data" : "{\n  \"orderMoney\" : \"6\",\n  \"carId\" : \"5d012c0d_bf82_11e7_8e04_6c92bf31522f\",\n  \"items\" : \"[\\n  {\\n    \\\"buyDate\\\" : \\\"2017-11-29\\\",\\n    \\\"endTime\\\" : \\\"16:40\\\",\\n    \\\"beginTime\\\" : \\\"14:00\\\",\\n    \\\"price\\\" : \\\"3.00\\\",\\n    \\\"ppsType\\\" : \\\"0\\\"\\n  },\\n  {\\n    \\\"buyDate\\\" : \\\"2017-11-30\\\",\\n    \\\"endTime\\\" : \\\"16:40\\\",\\n    \\\"beginTime\\\" : \\\"14:00\\\",\\n    \\\"price\\\" : \\\"3.00\\\",\\n    \\\"ppsType\\\" : \\\"0\\\"\\n  }\\n]\",\n  \"plateNumber\" : \"京FHHYHHY\",\n  \"ppsType\" : \"0\",\n  \"parkId\" : \"5770a654_4fde_11e6_bd3c_2880239dce10\"\n}"
}
2017-11-27 17:22:27.146 [e8302f76-58c3-428e-a1a8-0a1f986f8548] [ERROR]  TobPpsOrderController {TobPpsOrderController.java:102} - syntax error, expect {, actual string, pos 0, fastjson-version 1.2.41
com.alibaba.fastjson.JSONException: syntax error, expect {, actual string, pos 0, fastjson-version 1.2.41
	at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:451)
	at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:271)
	at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:267)
	at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:640)
	at com.alibaba.fastjson.JSON.parseObject(JSON.java:365)
	at com.alibaba.fastjson.JSON.parseObject(JSON.java:333)
	at com.alibaba.fastjson.JSON.parseObject(JSON.java:247)
	

搜索了很多帖子都是在JSON串上做文章,通过json.repalce()的方式来替换特殊字符以达到正确解析目的的,但是一旦类似地方太多,产生大量重复代码,于是采用了修改Spring mvc配置的方式解决
关键配置如下:

<mvc:annotation-driven>
		<mvc:message-converters>
			<bean class="org.springframework.http.converter.StringHttpMessageConverter">
				<constructor-arg value="UTF-8" />
			</bean>
			<bean
				class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
				<property name="supportedMediaTypes">
					<list>
						<value>application/json</value>
					</list>
				</property>
			</bean>
		</mvc:message-converters>
	</mvc:annotation-driven>

希望能够帮到遇到相同问题的朋友!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值