JAVA_JSON_example
2016-05-31 11:14
387 查看
package cn.kjxy.JSON; import java.util.List; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; /** * 解析网络数据 * 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" * 步骤:1.获取路径 * 2.通过HttpClient从该网络路径获取json数据 * 3.通过bejson工具进行json校验 * 4.创建相关对象或数组进行json解析 * @author Administrator * 注意: 需导入HttpClient的三个jar包及JSON的jar包 */ class Item{ private int stypeid;//": 3, private String stypename;//: "图集", private String title;//": "暴雨致赣南5.3万人受灾", private String img;//": "http://stcv5.vivame.cn/pmsV5/upload/file/20160323/f116d696-c777-43a0-a709-d044dec48900.jpg", public int getStypeid() { return stypeid; } public void setStypeid(int stypeid) { this.stypeid = stypeid; } public String getStypename() { return stypename; } public void setStypename(String stypename) { this.stypename = stypename; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getImg() { return img; } public void setImg(String img) { this.img = img; } @Override public String toString() { return "Items [stypeid=" + stypeid + ", stypename=" + stypename + ", title=" + title + ", img=" + img + "]"; } } public class Demo2 { public static void main(String[] args) { 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"; //应用自制工具类解析JSON数据 String json = HttpHelpers.getResourceByInternet(path); parserJSON(json); } private static void parserJSON(String json) { // TODO Auto-generated method stub try { //创建JSON对象 JSONObject jsonObject = new JSONObject(json); JSONObject data = jsonObject.getJSONObject("data"); JSONArray feedList = data.getJSONArray("feedlist"); for (int i = 0; i < feedList.length(); i++) { JSONObject jsonObject2 = feedList.getJSONObject(i); JSONArray items = jsonObject2.getJSONArray("items"); for (int j = 0; j < items.length(); j++) { JSONObject jsonObject3 = items.getJSONObject(j); Item item = new Item(); item.setStypeid(jsonObject3.getInt("stypeid")); item.setStypename(jsonObject3.getString("stypename")); item.setTitle(jsonObject3.getString("title")); item.setImg(jsonObject3.getString("img")); System.out.println(item); } } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
package cn.kjxy.JSON; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; /** * 请求网络的工具类 * * @author Administrator * */ public class HttpHelpers { /** * 下载图片 保存到byte类型的数组中 * * @param path * 地址 * @return byte[] */ public static byte[] downLoadImg(String path) { BufferedInputStream bis = null; try { // 1,创建HttpClient对象 Android6.0之前可以使用 HttpClient httpClient = new DefaultHttpClient(); // 2,创建请求对象+指定地址 HttpGet httpGet = new HttpGet(path); // 3,执行请求 获得HttpResponse对象 HttpResponse response = httpClient.execute(httpGet); // 4,获得响应码 int code = response.getStatusLine().getStatusCode(); if (code == 200) { // 5,得到响应的HttpEntity对象 HttpEntity responseEntity = response.getEntity(); // 方法一 // bis = new BufferedInputStream(responseEntity.getContent()); // byte b[] = toByteArray(bis); // return b; // 方法二 return EntityUtils.toByteArray(responseEntity); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (bis != null) { try { bis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return null; } /** * 把图片下载到本地磁盘 * * @param path */ public static void downLoadImgToLocal(String path) { BufferedInputStream bis = null; BufferedOutputStream boStream = null; try { // 1,创建HttpClient对象 Android6.0之前可以使用 HttpClient httpClient = new DefaultHttpClient(); // 2,创建请求对象+指定地址 HttpGet httpGet = new HttpGet(path); // 3,执行请求 获得HttpResponse对象 HttpResponse response = httpClient.execute(httpGet); // 4,获得响应码 int code = response.getStatusLine().getStatusCode(); if (code == 200) { // 5,得到响应的HttpEntity对象 HttpEntity responseEntity = response.getEntity(); // 方法一 // bis = new BufferedInputStream(responseEntity.getContent()); // byte b[] = toByteArray(bis); // 方法二 byte b[] = EntityUtils.toByteArray(responseEntity); String endsWith = path.substring(path.lastIndexOf(".")); boStream = new BufferedOutputStream(new FileOutputStream((int) (Math.random() * 100) + endsWith)); boStream.write(b); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (bis != null) { try { bis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (boStream != null) { try { boStream.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } /** * 从互联网获取文本 json xml * * @param path * 地址 * @return 获取到的文本数据 */ public static String getResourceByInternet(String path) { BufferedReader bReader = null; try { // 1,创建HttpClient对象 Android6.0之前可以使用 HttpClient httpClient = new DefaultHttpClient(); // 2,创建请求对象+指定地址 HttpGet httpGet = new HttpGet(path); // 3,执行请求 获得HttpResponse对象 HttpResponse response = httpClient.execute(httpGet); // 4,获得响应码 int code = response.getStatusLine().getStatusCode(); if (code == 200) { // 得到HttpEntity对象 HttpEntity responseEntity = response.getEntity(); // 方法一 // bReader = new BufferedReader(new // InputStreamReader(responseEntity.getContent())); // StringBuilder sbBuilder = new StringBuilder(); // String line = null; // while ((line = bReader.readLine()) != null) { // sbBuilder.append(line); // } // // return sbBuilder.toString(); // 方法二 return EntityUtils.toString(responseEntity); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (bReader != null) { try { bReader.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return null; } public static byte[] toByteArray(BufferedInputStream bufferedInputStream) { byte b[] = new byte[1024 * 1024]; int len = 0; ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { while ((len = bufferedInputStream.read(b)) != -1) { baos.write(b, 0, len); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return baos.toByteArray(); } public static String upLoadData(String path, Map<String, String> map) { BufferedReader bReader = null; try { // 1,创建HttpClient对象 Android6.0之前可以使用 HttpClient httpClient = new DefaultHttpClient(); // 2,创建请求对象+指定地址 HttpPost httpPost = new HttpPost(path); // 设置用于发送到服务端的参数 List<NameValuePair> list = new ArrayList<NameValuePair>(); for (String string : map.keySet()) { list.add(new BasicNameValuePair(string, map.get(string))); } HttpEntity requestEntity = new UrlEncodedFormEntity(list, "gbk"); httpPost.setEntity(requestEntity); // 3,执行请求 获得HttpResponse对象 HttpResponse response = httpClient.execute(httpPost); // 4,获得响应码 int code = response.getStatusLine().getStatusCode(); if (code == 200) { // 得到HttpEntity对象 HttpEntity responseEntity = response.getEntity(); // 方法一 // bReader = new BufferedReader(new // InputStreamReader(responseEntity.getContent())); // StringBuilder sbBuilder = new StringBuilder(); // String line = null; // while ((line = bReader.readLine()) != null) { // sbBuilder.append(line); // } // // return sbBuilder.toString(); // 方法二 return EntityUtils.toString(responseEntity, "gbk"); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (bReader != null) { try { bReader.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return null; } public static void main(String[] args) { byte b[] = downLoadImg("http://images.china.cn/attachement/jpg/site1000/20140313/844bf52c7d7c148b8abc05.jpg"); BufferedOutputStream bufferedOutputStream; try { bufferedOutputStream = new BufferedOutputStream(new FileOutputStream("ceo.jpg")); // bufferedOutputStream.write(b); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // downLoadImgToLocal("http://images.china.cn/attachement/jpg/site1000/20140313/844bf52c7d7c148b8abc05.jpg"); // System.out.println(getResourceByInternet("http://www.doukantv.com/api/hot/?type=movie&cli=ipad&sys_ver=7.1.1&ver=2.1")); Map<String, String> map = new HashMap<String, String>(); map.put("uname", "张三"); map.put("pwd", "admin"); System.out.println(upLoadData("http://172.20.136.5:8080/2016_05_27_server/login", map)); } }
相关文章推荐
- 总结项目中不支持emoji表情的问题的解决方法
- java中枚举的使用
- JAVA_JSON
- spring3.2.0与mybatis3.2.7整合出错--Failed to read candidate component class--nested exception is java.lang.IllegalArgumentException
- java的Date、SimpleDateFormat、GregorianCalendar之间的转化
- 再探Java基础——throw与throws
- JDK环境变量配置教程分享
- ubuntu下配置JDK7环境变量
- 工作中常用到的一些java工具类
- JAVA 对象深度复制实现
- struts2 拦截器,使用spring注入
- JAVA学习笔记整理六(类集框架)
- springboot多数据源读写分离和主库数据源service层事务控制
- Java 八种排序算法比较实践
- java endian 字节序
- Spring Validation分组校验
- JAVA中&&和&、||和|(短路与和逻辑与、短路或和逻辑或)的区别?
- java代码在页面实现展示pdf文件
- Java socket与JDBC的共用
- 几款Java反编译软件