﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-少年阿宾-随笔分类-JSON</title><link>http://www.blogjava.net/stevenjohn/category/52315.html</link><description>那些青春的岁月</description><language>zh-cn</language><lastBuildDate>Sat, 12 Jan 2013 21:35:00 GMT</lastBuildDate><pubDate>Sat, 12 Jan 2013 21:35:00 GMT</pubDate><ttl>60</ttl><item><title>SpringMVC与fastjson整合并同时解决中文乱码问题</title><link>http://www.blogjava.net/stevenjohn/archive/2013/01/12/394144.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Sat, 12 Jan 2013 15:56:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2013/01/12/394144.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/394144.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2013/01/12/394144.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/394144.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/394144.html</trackback:ping><description><![CDATA[<div><span style="color: #2c2c2c; font-family: 宋体, 'Arial Narrow', arial, serif; line-height: 28px; background-color: #ffffff;">&nbsp;今天试着把SpringMVC与fastjson整合了下，经测试也能解决json含中文乱码的问题，特此分享之。我也是初用，详细文档请见</span><a href="http://code.alibabatech.com/wiki/display/FastJSON/Home-zh" target="_blank" style="padding: 0px; margin: 0px; color: #682702; text-decoration: initial; font-family: 宋体, 'Arial Narrow', arial, serif; line-height: 28px; background-color: #ffffff;">官网</a><span style="color: #2c2c2c; font-family: 宋体, 'Arial Narrow', arial, serif; line-height: 28px; background-color: #ffffff;">。</span><br />public&nbsp;class&nbsp;MappingFastJsonHttpMessageConverter&nbsp;extends&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AbstractHttpMessageConverter&lt;Object&gt;&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;final&nbsp;Charset&nbsp;DEFAULT_CHARSET&nbsp;=&nbsp;Charset.forName("UTF-8");&nbsp;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;SerializerFeature[]&nbsp;serializerFeature;&nbsp;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;SerializerFeature[]&nbsp;getSerializerFeature()&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;serializerFeature;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setSerializerFeature(SerializerFeature[]&nbsp;serializerFeature)&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.serializerFeature&nbsp;=&nbsp;serializerFeature;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;MappingFastJsonHttpMessageConverter()&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(new&nbsp;MediaType("application",&nbsp;"json",&nbsp;DEFAULT_CHARSET));&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;@Override&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;boolean&nbsp;canRead(Class&lt;?&gt;&nbsp;clazz,&nbsp;MediaType&nbsp;mediaType)&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;@Override&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;boolean&nbsp;canWrite(Class&lt;?&gt;&nbsp;clazz,&nbsp;MediaType&nbsp;mediaType)&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;@Override&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;boolean&nbsp;supports(Class&lt;?&gt;&nbsp;clazz)&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;UnsupportedOperationException();&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;@Override&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;Object&nbsp;readInternal(Class&lt;?&gt;&nbsp;clazz,&nbsp;HttpInputMessage&nbsp;inputMessage)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;IOException,&nbsp;HttpMessageNotReadableException&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByteArrayOutputStream&nbsp;baos&nbsp;=&nbsp;new&nbsp;ByteArrayOutputStream();&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;((i&nbsp;=&nbsp;inputMessage.getBody().read())&nbsp;!=&nbsp;-1)&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;baos.write(i);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;JSON.parseArray(baos.toString(),&nbsp;clazz);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;@Override&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;void&nbsp;writeInternal(Object&nbsp;o,&nbsp;HttpOutputMessage&nbsp;outputMessage)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;IOException,&nbsp;HttpMessageNotWritableException&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;jsonString&nbsp;=&nbsp;JSON.toJSONString(o,&nbsp;serializerFeature);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputStream&nbsp;out&nbsp;=&nbsp;outputMessage.getBody();&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(jsonString.getBytes(DEFAULT_CHARSET));&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.flush();&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />}&nbsp;<br /><br /><br /><br /><span style="color: #2c2c2c; font-family: 'Courier New', monospace; font-size: 12px; line-height: 24px; white-space: pre; background-color: #f7f7f7;">SpringMVC关键配置：</span><div>&lt;mvc:annotation-driven&gt;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;mvc:message-converters&nbsp;register-defaults="true"&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;fastjosn&nbsp;spring&nbsp;support&nbsp;--&gt;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id="jsonConverter"&nbsp;class="com.alibaba.fastjson.spring.support.MappingFastJsonHttpMessageConverter"&gt;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name="supportedMediaTypes"&nbsp;value="application/json"&nbsp;/&gt;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name="serializerFeature"&gt;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;list&gt;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;WriteMapNullValue&lt;/value&gt;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;QuoteFieldNames&lt;/value&gt;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/list&gt;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;/mvc:message-converters&gt;&nbsp;<br />&lt;/mvc:annotation-driven&gt;&nbsp;</div><br /><br /><div>http://xyly624.blog.51cto.com/842520/896704</div></div><img src ="http://www.blogjava.net/stevenjohn/aggbug/394144.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2013-01-12 23:56 <a href="http://www.blogjava.net/stevenjohn/archive/2013/01/12/394144.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Gson 实例一</title><link>http://www.blogjava.net/stevenjohn/archive/2012/07/31/384401.html</link><dc:creator>abin</dc:creator><author>abin</author><pubDate>Tue, 31 Jul 2012 01:08:00 GMT</pubDate><guid>http://www.blogjava.net/stevenjohn/archive/2012/07/31/384401.html</guid><wfw:comment>http://www.blogjava.net/stevenjohn/comments/384401.html</wfw:comment><comments>http://www.blogjava.net/stevenjohn/archive/2012/07/31/384401.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stevenjohn/comments/commentRss/384401.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stevenjohn/services/trackbacks/384401.html</trackback:ping><description><![CDATA[<p>package org.abin.lee.json;</p>
<p>public class Employee {<br />&nbsp;private String name="abin";<br />&nbsp;private double salary=1000;<br />&nbsp;private String sex="M";<br />&nbsp;<br />&nbsp;public String getName() {<br />&nbsp;&nbsp;return name;<br />&nbsp;}<br />&nbsp;public void setName(String name) {<br />&nbsp;&nbsp;this.name = name;<br />&nbsp;}<br />&nbsp;public double getSalary() {<br />&nbsp;&nbsp;return salary;<br />&nbsp;}<br />&nbsp;public void setSalary(double salary) {<br />&nbsp;&nbsp;this.salary = salary;<br />&nbsp;}<br />&nbsp;public String getSex() {<br />&nbsp;&nbsp;return sex;<br />&nbsp;}<br />&nbsp;public void setSex(String sex) {<br />&nbsp;&nbsp;this.sex = sex;<br />&nbsp;}<br />&nbsp;</p>
<p>}<br /></p><br /><br /><br /><br /><br /><br />
<p>package org.abin.lee.json;</p>
<p>import com.google.gson.Gson;<br />import com.google.gson.GsonBuilder;</p>
<p>public class JsonTest {<br />&nbsp;public static void main(String[] args) {<br />&nbsp;&nbsp;GsonBuilder builder=new GsonBuilder();<br />&nbsp;&nbsp;Gson gson=builder.create();<br />&nbsp;&nbsp;String json1=gson.toJson(new Employee());<br />&nbsp;&nbsp;System.out.println("json1="+json1);<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;Employee json2=gson.fromJson(json1, Employee.class);<br />&nbsp;&nbsp;System.out.println("json2="+json2);<br />&nbsp;&nbsp;System.out.println(json2.getName());<br />&nbsp;&nbsp;System.out.println(json2.getSalary());<br />&nbsp;&nbsp;System.out.println(json2.getSex());<br />&nbsp;&nbsp;System.out.println(json2.getClass());<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;}</p>
<p>}<br /></p> <img src ="http://www.blogjava.net/stevenjohn/aggbug/384401.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stevenjohn/" target="_blank">abin</a> 2012-07-31 09:08 <a href="http://www.blogjava.net/stevenjohn/archive/2012/07/31/384401.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>