zoukankan      html  css  js  c++  java
  • JAVA_JSON_example

     1 package cn.kjxy.JSON;
     2 
     3 import java.util.List;
     4 
     5 import org.json.JSONArray;
     6 import org.json.JSONException;
     7 import org.json.JSONObject;
     8 
     9 /**
    10  * 解析网络数据
    11  *     path:"http://interfacev5.vivame.cn/x1-interface-v5/json/newdatalist.json?platform=android&installversion=5.2.0&channelno=OPPOA2320480100&mid=0a0fec95ea3364f43798a33fc3616780&uid=3348521&sid=a27ef935-f451-46ad-962b-0a48c47d47ae&type=-1&id=-1&category=-1&ot=0&nt=0"
    12  *    步骤:1.获取路径
    13  *        2.通过HttpClient从该网络路径获取json数据
    14  *        3.通过bejson工具进行json校验
    15  *        4.创建相关对象或数组进行json解析
    16  * @author Administrator
    17  *   注意: 需导入HttpClient的三个jar包及JSON的jar包
    18  */
    19 
    20 class Item{
    21      private int stypeid;//": 3,
    22      private  String stypename;//: "图集",
    23      private String title;//": "暴雨致赣南5.3万人受灾",
    24      private String img;//": "http://stcv5.vivame.cn/pmsV5/upload/file/20160323/f116d696-c777-43a0-a709-d044dec48900.jpg",
    25     public int getStypeid() {
    26         return stypeid;
    27     }
    28     public void setStypeid(int stypeid) {
    29         this.stypeid = stypeid;
    30     }
    31     public String getStypename() {
    32         return stypename;
    33     }
    34     public void setStypename(String stypename) {
    35         this.stypename = stypename;
    36     }
    37     public String getTitle() {
    38         return title;
    39     }
    40     public void setTitle(String title) {
    41         this.title = title;
    42     }
    43     public String getImg() {
    44         return img;
    45     }
    46     public void setImg(String img) {
    47         this.img = img;
    48     }
    49     @Override
    50     public String toString() {
    51         return "Items [stypeid=" + stypeid + ", stypename=" + stypename
    52                 + ", title=" + title + ", img=" + img + "]";
    53     }
    54     
    55 }
    56 public class Demo2 {
    57     public static void main(String[] args) {
    58         String path = "http://interfacev5.vivame.cn/x1-interface-v5/json/newdatalist.json?platform=android&installversion=5.2.0&channelno=OPPOA2320480100&mid=0a0fec95ea3364f43798a33fc3616780&uid=3348521&sid=a27ef935-f451-46ad-962b-0a48c47d47ae&type=-1&id=-1&category=-1&ot=0&nt=0";
    59         //应用自制工具类解析JSON数据
    60         String json = HttpHelpers.getResourceByInternet(path);
    61         parserJSON(json);
    62     }
    63 
    64     private static void parserJSON(String json) {
    65         // TODO Auto-generated method stub
    66           try {
    67               //创建JSON对象
    68               JSONObject jsonObject = new JSONObject(json);
    69               JSONObject data = jsonObject.getJSONObject("data");
    70               JSONArray feedList = data.getJSONArray("feedlist");
    71               for (int i = 0; i < feedList.length(); i++) {
    72                 JSONObject jsonObject2 = feedList.getJSONObject(i);
    73                 JSONArray items = jsonObject2.getJSONArray("items");
    74                 for (int j = 0; j < items.length(); j++) {
    75                     JSONObject jsonObject3 = items.getJSONObject(j);
    76                     Item item =  new Item();
    77                     item.setStypeid(jsonObject3.getInt("stypeid"));
    78                     item.setStypename(jsonObject3.getString("stypename"));
    79                     item.setTitle(jsonObject3.getString("title"));
    80                     item.setImg(jsonObject3.getString("img"));
    81                     System.out.println(item);
    82                 }
    83               
    84               }
    85           } catch (JSONException e) {
    86             // TODO Auto-generated catch block
    87             e.printStackTrace();
    88         }
    89           }
    90 }
      1 package cn.kjxy.JSON;
      2 
      3 import java.io.BufferedInputStream;
      4 import java.io.BufferedOutputStream;
      5 import java.io.BufferedReader;
      6 import java.io.ByteArrayOutputStream;
      7 import java.io.FileNotFoundException;
      8 import java.io.FileOutputStream;
      9 import java.io.IOException;
     10 import java.util.ArrayList;
     11 import java.util.HashMap;
     12 import java.util.List;
     13 import java.util.Map;
     14 
     15 import org.apache.http.HttpEntity;
     16 import org.apache.http.HttpResponse;
     17 import org.apache.http.NameValuePair;
     18 import org.apache.http.client.HttpClient;
     19 import org.apache.http.client.entity.UrlEncodedFormEntity;
     20 import org.apache.http.client.methods.HttpGet;
     21 import org.apache.http.client.methods.HttpPost;
     22 import org.apache.http.impl.client.DefaultHttpClient;
     23 import org.apache.http.message.BasicNameValuePair;
     24 import org.apache.http.util.EntityUtils;
     25 
     26 /**
     27  * 请求网络的工具类
     28  * 
     29  * @author Administrator
     30  *
     31  */
     32 public class HttpHelpers {
     33 
     34     /**
     35      * 下载图片 保存到byte类型的数组中
     36      * 
     37      * @param path
     38      *            地址
     39      * @return byte[]
     40      */
     41     public static byte[] downLoadImg(String path) {
     42         BufferedInputStream bis = null;
     43         try {
     44             // 1,创建HttpClient对象 Android6.0之前可以使用
     45             HttpClient httpClient = new DefaultHttpClient();
     46             // 2,创建请求对象+指定地址
     47             HttpGet httpGet = new HttpGet(path);
     48             // 3,执行请求 获得HttpResponse对象
     49             HttpResponse response = httpClient.execute(httpGet);
     50             // 4,获得响应码
     51             int code = response.getStatusLine().getStatusCode();
     52             if (code == 200) {
     53                 // 5,得到响应的HttpEntity对象
     54                 HttpEntity responseEntity = response.getEntity();
     55                 // 方法一
     56                 // bis = new BufferedInputStream(responseEntity.getContent());
     57                 // byte b[] = toByteArray(bis);
     58                 // return b;
     59 
     60                 // 方法二
     61                 return EntityUtils.toByteArray(responseEntity);
     62 
     63             }
     64 
     65         } catch (IOException e) {
     66             // TODO Auto-generated catch block
     67             e.printStackTrace();
     68         } finally {
     69             if (bis != null) {
     70                 try {
     71                     bis.close();
     72                 } catch (IOException e) {
     73                     // TODO Auto-generated catch block
     74                     e.printStackTrace();
     75                 }
     76             }
     77         }
     78 
     79         return null;
     80 
     81     }
     82 
     83     /**
     84      * 把图片下载到本地磁盘
     85      * 
     86      * @param path
     87      */
     88     public static void downLoadImgToLocal(String path) {
     89         BufferedInputStream bis = null;
     90         BufferedOutputStream boStream = null;
     91         try {
     92             // 1,创建HttpClient对象 Android6.0之前可以使用
     93             HttpClient httpClient = new DefaultHttpClient();
     94             // 2,创建请求对象+指定地址
     95             HttpGet httpGet = new HttpGet(path);
     96             // 3,执行请求 获得HttpResponse对象
     97             HttpResponse response = httpClient.execute(httpGet);
     98             // 4,获得响应码
     99             int code = response.getStatusLine().getStatusCode();
    100             if (code == 200) {
    101                 // 5,得到响应的HttpEntity对象
    102                 HttpEntity responseEntity = response.getEntity();
    103                 // 方法一
    104                 // bis = new BufferedInputStream(responseEntity.getContent());
    105                 // byte b[] = toByteArray(bis);
    106 
    107                 // 方法二
    108                 byte b[] = EntityUtils.toByteArray(responseEntity);
    109                 String endsWith = path.substring(path.lastIndexOf("."));
    110                 boStream = new BufferedOutputStream(new FileOutputStream((int) (Math.random() * 100) + endsWith));
    111                 boStream.write(b);
    112 
    113             }
    114 
    115         } catch (IOException e) {
    116             // TODO Auto-generated catch block
    117             e.printStackTrace();
    118         } finally {
    119             if (bis != null) {
    120                 try {
    121                     bis.close();
    122                 } catch (IOException e) {
    123                     // TODO Auto-generated catch block
    124                     e.printStackTrace();
    125                 }
    126             }
    127             if (boStream != null) {
    128                 try {
    129                     boStream.close();
    130                 } catch (IOException e) {
    131                     // TODO Auto-generated catch block
    132                     e.printStackTrace();
    133                 }
    134             }
    135         }
    136 
    137     }
    138 
    139     /**
    140      * 从互联网获取文本 json xml
    141      * 
    142      * @param path
    143      *            地址
    144      * @return 获取到的文本数据
    145      */
    146 
    147     public static String getResourceByInternet(String path) {
    148         BufferedReader bReader = null;
    149         try {
    150             // 1,创建HttpClient对象 Android6.0之前可以使用
    151             HttpClient httpClient = new DefaultHttpClient();
    152             // 2,创建请求对象+指定地址
    153             HttpGet httpGet = new HttpGet(path);
    154             // 3,执行请求 获得HttpResponse对象
    155             HttpResponse response = httpClient.execute(httpGet);
    156             // 4,获得响应码
    157             int code = response.getStatusLine().getStatusCode();
    158             if (code == 200) {
    159                 // 得到HttpEntity对象
    160                 HttpEntity responseEntity = response.getEntity();
    161                 // 方法一
    162                 // bReader = new BufferedReader(new
    163                 // InputStreamReader(responseEntity.getContent()));
    164                 // StringBuilder sbBuilder = new StringBuilder();
    165                 // String line = null;
    166                 // while ((line = bReader.readLine()) != null) {
    167                 // sbBuilder.append(line);
    168                 // }
    169                 //
    170                 // return sbBuilder.toString();
    171 
    172                 // 方法二
    173                 return EntityUtils.toString(responseEntity);
    174 
    175             }
    176 
    177         } catch (IOException e) {
    178             // TODO Auto-generated catch block
    179             e.printStackTrace();
    180         } finally {
    181             if (bReader != null) {
    182                 try {
    183                     bReader.close();
    184                 } catch (IOException e) {
    185                     // TODO Auto-generated catch block
    186                     e.printStackTrace();
    187                 }
    188             }
    189         }
    190 
    191         return null;
    192 
    193     }
    194 
    195     public static byte[] toByteArray(BufferedInputStream bufferedInputStream) {
    196         byte b[] = new byte[1024 * 1024];
    197         int len = 0;
    198         ByteArrayOutputStream baos = new ByteArrayOutputStream();
    199         try {
    200             while ((len = bufferedInputStream.read(b)) != -1) {
    201                 baos.write(b, 0, len);
    202             }
    203         } catch (IOException e) {
    204             // TODO Auto-generated catch block
    205             e.printStackTrace();
    206         }
    207 
    208         return baos.toByteArray();
    209 
    210     }
    211 
    212     public static String upLoadData(String path, Map<String, String> map) {
    213         BufferedReader bReader = null;
    214         try {
    215             // 1,创建HttpClient对象 Android6.0之前可以使用
    216             HttpClient httpClient = new DefaultHttpClient();
    217             // 2,创建请求对象+指定地址
    218             HttpPost httpPost = new HttpPost(path);
    219             // 设置用于发送到服务端的参数
    220             List<NameValuePair> list = new ArrayList<NameValuePair>();
    221 
    222             for (String string : map.keySet()) {
    223                 list.add(new BasicNameValuePair(string, map.get(string)));
    224             }
    225             HttpEntity requestEntity = new UrlEncodedFormEntity(list, "gbk");
    226             httpPost.setEntity(requestEntity);
    227 
    228             // 3,执行请求 获得HttpResponse对象
    229             HttpResponse response = httpClient.execute(httpPost);
    230             // 4,获得响应码
    231             int code = response.getStatusLine().getStatusCode();
    232             if (code == 200) {
    233                 // 得到HttpEntity对象
    234                 HttpEntity responseEntity = response.getEntity();
    235                 // 方法一
    236                 // bReader = new BufferedReader(new
    237                 // InputStreamReader(responseEntity.getContent()));
    238                 // StringBuilder sbBuilder = new StringBuilder();
    239                 // String line = null;
    240                 // while ((line = bReader.readLine()) != null) {
    241                 // sbBuilder.append(line);
    242                 // }
    243                 //
    244                 // return sbBuilder.toString();
    245 
    246                 // 方法二
    247                 return EntityUtils.toString(responseEntity, "gbk");
    248 
    249             }
    250 
    251         } catch (IOException e) {
    252             // TODO Auto-generated catch block
    253             e.printStackTrace();
    254         } finally {
    255             if (bReader != null) {
    256                 try {
    257                     bReader.close();
    258                 } catch (IOException e) {
    259                     // TODO Auto-generated catch block
    260                     e.printStackTrace();
    261                 }
    262             }
    263         }
    264 
    265         return null;
    266 
    267     }
    268 
    269     public static void main(String[] args) {
    270         byte b[] = downLoadImg("http://images.china.cn/attachement/jpg/site1000/20140313/844bf52c7d7c148b8abc05.jpg");
    271         BufferedOutputStream bufferedOutputStream;
    272         try {
    273             bufferedOutputStream = new BufferedOutputStream(new FileOutputStream("ceo.jpg"));
    274             // bufferedOutputStream.write(b);
    275 
    276         } catch (FileNotFoundException e1) {
    277             // TODO Auto-generated catch block
    278             e1.printStackTrace();
    279         } catch (IOException e) {
    280             // TODO Auto-generated catch block
    281             e.printStackTrace();
    282         }
    283 
    284         // downLoadImgToLocal("http://images.china.cn/attachement/jpg/site1000/20140313/844bf52c7d7c148b8abc05.jpg");
    285 
    286         // System.out.println(getResourceByInternet("http://www.doukantv.com/api/hot/?type=movie&cli=ipad&sys_ver=7.1.1&ver=2.1"));
    287         Map<String, String> map = new HashMap<String, String>();
    288         map.put("uname", "张三");
    289         map.put("pwd", "admin");
    290         System.out.println(upLoadData("http://172.20.136.5:8080/2016_05_27_server/login", map));
    291 
    292     }
    293 
    294 }
  • 相关阅读:
    leetcode教程系列——Binary Tree
    《Ranked List Loss for Deep Metric Learning》CVPR 2019
    《Domain Agnostic Learning with Disentangled Representations》ICML 2019
    Pytorch从0开始实现YOLO V3指南 part5——设计输入和输出的流程
    Pytorch从0开始实现YOLO V3指南 part4——置信度阈值和非极大值抑制
    Pytorch从0开始实现YOLO V3指南 part3——实现网络前向传播
    Pytorch从0开始实现YOLO V3指南 part2——搭建网络结构层
    Pytorch从0开始实现YOLO V3指南 part1——理解YOLO的工作
    让我佩服的人生 文章
    win8.1配置cordova+ionic等一系列东西
  • 原文地址:https://www.cnblogs.com/fangg/p/5545215.html
Copyright © 2011-2022 走看看