zoukankan      html  css  js  c++  java
  • java读取url中json文件中的json数据

      有时候需要远程从其他接口中获取json数据,如果遇到返回的json数据是一个文件而不直接是数据,那么可以通过以下方法进行读取:

        /**
         * 从数据接口获取到数据
         * @return
         * @throws Exception
         */
        public String readData() throws Exception {
            //创建StringBuffer类型的变量json,用于存放拼装好的json数据
            //StringBuffer json = new StringBuffer("");
            String json = "";
            //url中不可以出现空格,空格全部用%20替换
            String url = "http://192.168.1.190:8888/api/CityData/GetMonitorData?apikey=?&startTime=2017-03-12%2012:00:00&endTime=2017-03-14%2012:00:00&uCode=?&pCode=?,?,?,?,?&datatype=?&isSrc=?"; 
            URL urls = new URL(url);  
            java.net.HttpURLConnection conn = (java.net.HttpURLConnection)urls.openConnection();  
            //因为服务器的安全设置不接受Java程序作为客户端访问,解决方案是设置客户端的User Agent
            conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
            conn.setDoOutput(true);  
         conn.setDoInput(true);
    //只可以设置为GET方式,不可以使用POST方式 //conn.setRequestMethod("POST"); conn.setRequestMethod("GET");

          //设置编码格式为UTF-8
          conn.setRequestProperty("contentType", "UTF-8");

    //得到输入流
            InputStream inputStream = conn.getInputStream(); 
            //从输入流中获取数据(一定要设置编码格式,不然在服务器端接收到的数据可能乱码)
            BufferedReader bf=new BufferedReader(new InputStreamReader(inputStream,"UTF-8"));
            String line=null;
            while((line=bf.readLine())!=null){//一行一行的读
                json = json + line;
            }
            if(inputStream!=null){  
                inputStream.close();  
            }
            String[] strs = json.split("\\");
            String str = "";
            StringBuffer jsons = new StringBuffer("");
            for (int i = 0; i < strs.length; i++) {
                str = strs[i];
                jsons = jsons.append(str);
            }
            jsons.replace(0, 1, "");
            jsons.replace(jsons.length()-1, jsons.length(), "");
            this.jsonObject = jsons.toString();
            return JSON;
        }
  • 相关阅读:
    文件监控(教学版)
    设备读写 之 直接方式(Direct I/O)
    过滤驱动加密文件(代码)
    Why ASMLIB and why not?
    SQL调优:Clustering Factor影响数据删除速度一例
    监控一个大事务的回滚
    crsctl status resource t init in 11.2.0.2 grid infrastructure
    Script:收集Oracle备份恢复信息
    Only ARCH Bgprocess may create archivelog?
    11g新特性:A useful View V$DIAG_INFO
  • 原文地址:https://www.cnblogs.com/shuilangyizu/p/6549188.html
Copyright © 2011-2022 走看看