Android网络数据Json格式解析

本文介绍了如何在Android端解析Json格式的网络数据,通过原生态方式、Gson库和FastJson库分别进行解析,并展示了对应的代码实现。首先在服务器端模拟了一组Json数据,然后在Android客户端通过HttpURLConnection获取数据,最后利用各种方法解析并显示在ListView中。
摘要由CSDN通过智能技术生成

     上次我们讲到XML解析网络数据,这次我们来研究研究用Json格式解析数据


    照旧,我们先在web端的FQAcgtion.class模拟一组Json格式的数据:

 

  1. public String getJson() throws Exception {  
  2.         // 获取数据  
  3.         // 调用数据库查询数据,返回对象集合(….)  
  4.         List<FQ> fqs = new ArrayList<FQ>();  
  5.         for (int i = 1; i <= 100; i++) {  
  6.             Calendar calendar = Calendar.getInstance();  
  7.             int year = calendar.get(Calendar.YEAR);  
  8.             int month = calendar.get(Calendar.MONTH);  
  9.             int day = calendar.get(Calendar.DAY_OF_MONTH);  
  10.             fqs.add(new FQ(“原生态” + i, “很纯”, year + “-“ + month + “-“ + day));  
  11.         }  
  12.           
  13.         //将对象集合转换为json,例如:{“class”:”150831”,”lists”:30,”fqs”“[{},{},{}]}  
  14.         JSONObject jo=new JSONObject();  
  15.         jo.put(”clazz”“150831”);  
  16.         jo.put(”lists”, fqs.size());  
  17.           
  18.         JSONArray ja=new JSONArray();  
  19.           
  20.         for (FQ fq : fqs) {  
  21.             JSONObject jos=new JSONObject();  
  22.             jos.put(”name”, fq.getName());  
  23.             jos.put(”content”, fq.getContent());  
  24.             jos.put(”time”, fq.getTime());  
  25.             ja.add(jos);  
  26.         }  
  27.           
  28.         jo.put(”fqs”, ja);  
  29.           
  30.   
  31.         // 将对象集合存放到请求域中  
  32. //      ServletActionContext.getRequest().setAttribute(“fqs”, jo.toString());  
  33.   
  34.         return “dataResultJson”;  
  35.     }  
  36.       
public String getJson() throws Exception {
        // 获取数据
        // 调用数据库查询数据,返回对象集合(....)
        List<FQ> fqs = new ArrayList<FQ>();
        for (int i = 1; i <= 100; i++) {
            Calendar calendar = Calendar.getInstance();
            int year = calendar.get(Calendar.YEAR);
            int month = calendar.get(Calendar.MONTH);
            int day = calendar.get(Calendar.DAY_OF_MONTH);
            fqs.add(new FQ("原生态" + i, "很纯", year + "-" + month + "-" + day));
        }

        //将对象集合转换为json,例如:{"class":"150831","lists":30,"fqs""[{},{},{}]}
        JSONObject jo=new JSONObject();
        jo.put("clazz", "150831");
        jo.put("lists", fqs.size());

        JSONArray ja=new JSONArray();

        for (FQ fq : fqs) {
            JSONObject jos=new JSONObject();
            jos.put("name", fq.getName());
            jos.put("content", fq.getContent());
            jos.put("time", fq.getTime());
            ja.add(jos);
        }

        jo.put("fqs", ja);


        // 将对象集合存放到请求域中
//      ServletActionContext.getRequest().setAttribute("fqs", jo.toString());

        return "dataResultJson";
    }
    

      dataResultJson.jsp:

  1. <%@ page language=“java” contentType=“text/plain; charset=utf-8” pageEncoding=“utf-8”%>{fqs}&nbsp;&nbsp;</span></span></li></ol><div class="save_code tracking-ad" data-mod="popu_249" style="display: none;"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets_01.png"></a></div></div><pre name="code" class="java" style="display: none;">&lt;%@ page language="java" contentType="text/plain; charset=utf-8" pageEncoding="utf-8"%&gt;{fqs}
       struts.xml配置:

    1. <action name=“fqAction*” class=“com.zking.action.FQAcgtion” method=“{1}”>  
    2.             <result name=”dataResult”>/dataResult.jsp</result>    
    3.             <result name=”dataResult”>/dataResultJson.jsp</result>            
    4.         </action>  
    <action name="fqAction*" class="com.zking.action.FQAcgtion" method="{1}">
                <result name="dataResult">/dataResult.jsp</result>  
                <result name="dataResult">/dataResultJson.jsp</result>          
            </action>



        截图如下:






            数据模拟好了,那我们现在来Android端拿取数据

           首先,先来个XML页面:依然是一个按钮和一个listview展示数据

          activity_get_json.xml

    1. <Button  
    2.         android:layout_width=”match_parent”  
    3.         android:layout_height=”wrap_content”  
    4.         android:text=”获取Json”  
    5.         android:onClick=”getJson”  
    6.         />  
    7.   
    8.     <ListView  
    9.         android:layout_width=”match_parent”  
    10.         android:layout_height=”wrap_content”  
    11.         android:id=”@+id/lv_json_list”  </
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值