zoukankan      html  css  js  c++  java
  • gson的使用

      Android中有的时候通过第三方API接口获取json格式的数据,那么如何解析json格式的数据呢?

    其实我们可以使用gson.jar来帮我们完成这项工作。

    比如一个json的格式如下:

    {"xingming":"wyl","sex":"male","hobby":"zhihu"},

    如果我们用gson来帮我们解析,那么我们就需要编写一个javabean,而这个bean的属性就是json的属性。

    具体实例如下:

    package wyl;
    
    import java.util.ArrayList;
    /**
     * 用于gson解析
     * @author Administrator
     *
     */
    public class ReturnMsg {
    	String code;
    	String text;
    	public static ArrayList list;
    	public String getCode() {
    		return code;
    	}
    	public void setCode(String code) {
    		this.code = code;
    	}
    	public String getText() {
    		return text;
    	}
    	public void setText(String text) {
    		this.text = text;
    	}
    	public static ArrayList getList() {
    		return list;
    	}
    	public static void setList(ArrayList list) {
    		ReturnMsg.list = list;
    	}
    	
    }
    

      测试类:

    package wyl;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.URL;
    import java.net.URLConnection;
    import java.net.URLEncoder;
    
    import com.google.gson.Gson;
    
    public class gsonTest {
    	public static void main(String[] args) throws IOException {
    		String key = "e59219b3f450256c2a3da7157ae651f2";
    		String info = "上海到成都的火车";//问题
    //		String info = "我爱你";//问题
    		info = URLEncoder.encode(info, "UTF-8");
    		String url = "http://www.tuling123.com/openapi/api?key="+key+"&info="+info;
    		
    		URL u = new URL(url);
    		URLConnection conn = u.openConnection();
    		conn.connect();
    		InputStream ips = conn.getInputStream();
    		
    		BufferedReader reader = new BufferedReader(new InputStreamReader( ips, "utf-8"));
            StringBuffer sb = new StringBuffer();
            String line = "";
            while ((line = reader.readLine()) != null) {
                sb.append(line);
            }
            reader.close();
            System.out.println("sb:"+sb);
            String sb2 = sb.toString();
            Gson gson = new Gson();//实例化一个gson对象
            //gson.fromJson(paraA,paraB);把json对象转化为java对象,
            //paraA是String类型的json字符串,paraB是这个json对应Bean的类类型(java反射中有)
            ReturnMsg rtn = gson.fromJson(sb2, ReturnMsg.class);//sb:{"code":305000,"text":"亲,已帮您找到列车信息","list":[{"trainnum":"D636/D637(动车组)","start":"上海虹桥","terminal":"成都东","starttime":"06:09","endtime":"21:15","icon":"http://unidust.cn/images/api-train.jpg","detailurl":"http://touch.qunar.com/h5/train/"},{"trainnum":"D2206/D2207(动车组)","start":"上海虹桥","terminal":"成都东","starttime":"06:39","endtime":"21:47","icon":"http://unidust.cn/images/api-train.jpg","detailurl":"http://touch.qunar.com/h5/train/"},{"trainnum":"K290/K291(快速)","start":"上海","terminal":"成都","starttime":"08:43","endtime":"21:33(+1)","icon":"http://unidust.cn/images/api-train.jpg","detailurl":"http://touch.qunar.com/h5/train/"},{"trainnum":"K1156/K1157(快速)","start":"上海","terminal":"成都","starttime":"09:16","endtime":"16:18(+1)","icon":"http://unidust.cn/images/api-train.jpg","detailurl":"http://touch.qunar.com/h5/train/"},{"trainnum":"K351/K354(快速)","start":"上海南","terminal":"成都","starttime":"17:34","endtime":"04:07(+2)","icon":"http://unidust.cn/images/api-train.jpg","detailurl":"http://touch.qunar.com/h5/train/"},{"trainnum":"K282/K283(快速)","start":"上海","terminal":"成都","starttime":"20:40","endtime":"11:30(+2)","icon":"http://unidust.cn/images/api-train.jpg","detailurl":"http://touch.qunar.com/h5/train/"}]}
    
            System.out.println("code:"+rtn.getCode());//code:305000
            System.out.println("text:"+rtn.getText());//text:亲,已帮您找到列车信息
    	}
    }
    

      

  • 相关阅读:
    TP5.x——打印SQL语句
    PHP——运行shell命令|脚本
    Git——取消merge状态
    Typecho——简介及安装
    Vue——服务器上部署vue.js
    Node——服务器上安装Node.js
    PHP——敏感词过滤
    PHP——emjoin表情存入数据库
    什么是脚本语言
    全局拦截各种http请求
  • 原文地址:https://www.cnblogs.com/Sunnor/p/4672085.html
Copyright © 2011-2022 走看看