JSON 之FastJson解析

<wbr><span style="font-size:14px">一、阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:<br> 速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Jsonparser。包括自称最快的JackJson;<br> 功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE5.0以上版本;支持Android;开源 (Apache 2.0)<br><br></span> <div><span style="font-size:14px">FastjsonAPI入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。</span></div> <div> <div style="font-size:10pt; width:680px; color:#000000; word-break:break-all; line-height:16px; font-family:verdana,宋体; background-color:#eeeeee; border:#cccccc 1px solid; padding:4px"> <span style="font-size:14px; color:#0000ff">public</span><span style="font-size:14px"><span><wbr></wbr></span><span style="color:#0000ff">static</span><span><wbr></wbr></span><span style="color:#0000ff">final</span><span><wbr></wbr></span>Objectparse(String text);<span><wbr></wbr></span><span style="color:#008000">// 把JSON文本parse为JSONObject或者JSONArray<span><wbr></wbr></span></span><br><span style="color:#0000ff">public</span><span><wbr></wbr></span><span style="color:#0000ff">static</span><span><wbr></wbr></span><span style="color:#0000ff">final</span><span><wbr></wbr></span>JSONObjectparseObject(String text);<span><wbr></wbr></span><span style="color:#008000">//把JSON文本parse成JSONObject<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></span><br><span style="color:#0000ff">public</span><span><wbr></wbr></span><span style="color:#0000ff">static</span><span><wbr></wbr></span><span style="color:#0000ff">final</span><span><wbr></wbr></span> TparseObject(String text, Class clazz);<span><wbr></wbr></span><span style="color:#008000">// 把JSON文本parse为JavaBean<span><wbr></wbr></span></span><br><span style="color:#0000ff">public</span><span><wbr></wbr></span><span style="color:#0000ff">static</span><span><wbr></wbr></span><span style="color:#0000ff">final</span><span><wbr></wbr></span>JSONArrayparseArray(String text);<span><wbr></wbr></span><span style="color:#008000">// 把JSON文本parse成JSONArray<span><wbr></wbr></span></span><br><span style="color:#0000ff">public</span><span><wbr></wbr></span><span style="color:#0000ff">static</span><span><wbr></wbr></span><span style="color:#0000ff">final</span><span><wbr></wbr></span> ListparseArray(String text, Class clazz);<span><wbr></wbr></span><span style="color:#008000">//把JSON文本parse成JavaBean集合<span><wbr></wbr></span></span><br><span style="color:#0000ff">public</span><span><wbr></wbr></span><span style="color:#0000ff">static</span><span><wbr></wbr></span><span style="color:#0000ff">final</span><span><wbr></wbr></span>StringtoJSONString(Object object);<span><wbr></wbr></span><span style="color:#008000">// 将JavaBean序列化为JSON文本<span><wbr></wbr></span></span><br><span style="color:#0000ff">public</span><span><wbr></wbr></span><span style="color:#0000ff">static</span><span><wbr></wbr></span><span style="color:#0000ff">final</span><span><wbr></wbr></span>StringtoJSONString(Object object,<span><wbr></wbr></span><span style="color:#0000ff">boolean</span><span><wbr></wbr></span>prettyFormat);<span><wbr></wbr></span><span style="color:#008000">//将JavaBean序列化为带格式的JSON文本<span><wbr></wbr></span></span><br><span style="color:#0000ff">public</span><span><wbr></wbr></span><span style="color:#0000ff">static</span><span><wbr></wbr></span><span style="color:#0000ff">final</span><span><wbr></wbr></span>ObjecttoJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。</span> </div> </div> <span style="font-size:14px"><br><span style="font-size:20px"><strong>二、FastJson解析JSON步骤</strong></span><br></span><wbr><div><wbr><span style="font-size:14px"></span><wbr><wbr><span style="font-size:14px"></span><wbr><wbr><span style="font-size:14px"><span style="font-size:16px"><strong>A、服务器端将数据转换成json字符串</strong></span><br></span><wbr><wbr><span style="font-size:14px"></span><wbr><wbr><span style="font-size:14px"></span><wbr><wbr><span style="font-size:14px"></span><wbr><wbr><span style="font-size:14px"></span><wbr><wbr><span style="font-size:14px">首先、服务器端项目要导入阿里巴巴的fastjson的jar包至builtPath路径下(这些可以到fastjson官网下载:http://code.alibabatech.com/wiki/display/FastJSON/Home-zh)</span></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></div> <span style="font-size:14px"><a target="_blank" href="http://photo.blog.sina.com.cn/showpic.html#blogid=7ffb8dd501013qas&amp;url=http://s14.sinaimg.cn/orignal/7ffb8dd5gcb63c625c27d"><img src="https://img-blog.csdn.net/20160318162104473?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt=""><br></a></span><span style="font-size:14px">然后将数据转为json字符串,核心函数是:</span><span style="font-size:14px"><br></span><pre code_snippet_id="1614634" snippet_file_name="blog_20160318_1_3637280" name="code" class="java">&lt;span style="font-size:14px;"&gt;public static String createJsonString(Object value) { StringalibabaJson = JSON.toJSONString(value); returnalibabaJson; }&lt;/span&gt;</pre> <span style="font-size:14px"><br></span><span style="font-size:14px"><br></span><span style="font-size:14px"><strong>B、客户端将json字符串转换为相应的javaBean</strong></span><span style="font-size:14px"><br></span><span style="font-size:14px; color:#010EFB"><wbr>首先客户端也要导入fastjson的两个jar包</wbr></span><span style="font-size:14px"><br></span><span style="font-size:14px"><strong>1、客户端获取json字符串</strong></span><span style="font-size:14px"><br></span><span style="font-size:14px"><span style="font-size:16px"></span></span><pre code_snippet_id="1614634" snippet_file_name="blog_20160318_2_4095411" name="code" class="java">public class HttpUtil { public static String getJsonContent(String urlStr) { try {// 获取HttpURLConnection连接对象 URL url = new URL(urlStr); HttpURLConnection httpConn = (HttpURLConnection) url .openConnection(); // 设置连接属性 httpConn.setConnectTimeout(3000); httpConn.setDoInput(true); httpConn.setRequestMethod("GET"); // 获取相应码 int respCode = httpConn.getResponseCode(); if (respCode == 200) { return ConvertStream2Json(httpConn.getInputStream()); } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return ""; } private static String ConvertStream2Json(InputStreaminputStream) { String jsonStr = ""; // ByteArrayOutputStream相当于内存输出流 ByteArrayOutputStream out = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; // 将输入流转移到内存输出流中 try { while ((len = inputStream.read(buffer, 0, buffer.length)) !=-1) { out.write(buffer, 0, len); } // 将内存流转换为字符串 jsonStr = new String(out.toByteArray()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return jsonStr; } }</pre> <br><span style="font-size:14px"><br></span><span style="font-size:14px"><span style="font-size:16px"><strong>2、使用泛型获取javaBean</strong></span></span><span style="font-size:14px">(核心函数)</span><span style="font-size:14px"><br></span><span style="font-size:14px"></span><wbr><span style="font-size:14px"></span><wbr><span style="font-size:14px"></span><wbr><pre code_snippet_id="1614634" snippet_file_name="blog_20160318_3_3365063" name="code" class="java">&lt;span style="font-size:14px;"&gt; public static T getPerson(String jsonString,Class cls) { T t =null; try { t = JSON.parseObject(jsonString,cls); } catch(Exception e) { // TODO:handle exception } returnt; } public static List getPersons(String jsonString, Class cls) { List list =new ArrayList(); try { list = JSON.parseArray(jsonString, cls); } catch(Exception e) { } returnlist; } public static List&gt; listKeyMaps(String jsonString) { List&gt; list = newArrayList&gt;(); try { list =JSON.parseObject(jsonString, newTypeReference&gt;&gt;() { }); } catch(Exception e) { // TODO:handle exception } returnlist; }&lt;/span&gt;</pre> <span style="font-size:14px"><br></span><span style="font-size:14px"><br></span><span style="font-size:14px"><br></span><span style="font-size:14px; font-size:16px"></span><map><span style="font-size:16px"></span></map><map><span style="font-size:16px"></span></map><span style="font-size:14px">from:</span><span style="font-size:14px">http://blog.sina.com.cn/s/blog_7ffb8dd501013qas.html</span><span style="font-size:14px"><br></span><span style="font-size:14px"><br></span></wbr></wbr></wbr></wbr></wbr>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值