代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
从服务器上获取xml数据并写入本地
作者:
许杰
/ 发布于
2013/10/11
/
414
1.从服务上获取xml数据 private List<VedioBean> getJsonXML() { InputStream iStream = null; String result = ""; try { URL url = new URL("服务器的网址"); URLConnection connection = url.openConnection(); iStream = connection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader( iStream, "utf-8")); StringBuffer sb = new StringBuffer(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } iStream.close(); result = sb.toString(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("返回的数据" + result); return parseJSON(result); } 2.解析获取到的数据 private List<VedioBean> parseJSON(String str) { ArrayList<VedioBean> jsonObjectList = new ArrayList<VedioBean>(); MovieDetail detail = null; VedioBean vedioBean = null; Param camshu = null; ArrayList<Param> params = null; ArrayList<MovieDetail> movieDetails = null; JSONObject obj; JSONArray json; StringBuffer sb=null; try { obj = new JSONObject(str); json = obj.getJSONArray("Qbox_data"); for (int i = 0; i < json.length(); i++) { JSONObject object = json.getJSONObject(i); vedioBean = new VedioBean(); System.out.println("类型:>>>>>>>>>>>>=====" + object.getString("type")); vedioBean.setType(object.getString("type")); System.out.println("type::>>>>>>>>" + object.getString("type")); JSONArray jsonArray = object.getJSONArray("data"); sb=new StringBuffer(); sb.append("{"+"\"data\""+":"+"["); for (int j = 0; j < jsonArray.length(); j++) { JSONObject object2 = jsonArray.getJSONObject(j); movieDetails = new ArrayList<MovieDetail>(); detail = new MovieDetail(); detail.setImg_url(object2.getString("img_url")); sb.append("{"+"\"iconURL\""+":"+"\""+object2.getString("img_url")+"\""); System.out.println("----->>>>>>img_url" + object2.getString("img_url")); detail.setImg_name(object2.getString("img_name")); System.out.println("----->>>>>>img_name" + object2.getString("img_name")); sb.append(", "+"\"iconPOS\""+":"+"\""+object2.getString("position")+"\""); detail.setPosition(object2.getString("position"));//位置 detail.setApk_name(object2.getString("apk_name")); sb.append(", "+"\"content\""+":"+"\""+object2.getString("apk_name")+"\""); System.out.println("----->>>>>>apk_name" + object2.getString("apk_name")); detail.setApk_action(object2.getString("apk_action")); System.out.println("----->>>>>>apk_action" + object2.getString("apk_action")); detail.setApk_package(object2.getString("apk_package")); System.out.println("----->>>>>>apk_package" + object2.getString("apk_package")); sb.append(", "+"\"class\""+":"+"\""+object2.getString("apk_class")+"\""); detail.setApk_class(object2.getString("apk_class")); System.out.println("----->>>>>>apk_class" + object2.getString("apk_class")); detail.setApk_type(object2.getString("apk_type")); System.out.println("----->>>>>>apk_type" + object2.getString("apk_type")); JSONArray param = object2.getJSONArray("apk_request_data"); for (int k = 0; k < param.length(); k++) { params = new ArrayList<Param>(); camshu = new Param(); System.out.println("----->>>>>>param1" + param.getJSONObject(k).getString("param1")); camshu.setParam1(param.getJSONObject(k).getString( "param1")); System.out.println("----->>>>>>param2" + param.getJSONObject(k).getString("param2")); camshu.setParam2(param.getJSONObject(k).getString( "param2")); System.out.println("----->>>>>>param3" + param.getJSONObject(k).getString("param3")); camshu.setParam3(param.getJSONObject(k).getString( "param3")); params.add(camshu); } detail.setParams(params); movieDetails.add(detail); System.out.println("参数的长度:>>>>>>>>>>" + param.length()); if((jsonArray.length()-1)==j){ sb.append("}"); }else{ sb.append("}"+","); } } sb.append("]"+"}"); String path="/data/data/com.langyi.xiedemo/json/GetGameList.json"; String path2="/data/data/com.langyi.xiedemo/json/GetVodList.json"; if(object.getString("type").equals("电视直播")){ print(sb.toString(), new File(path)); } if(object.getString("type").equals("网络影音")){ print(sb.toString(), new File(path2)); } vedioBean.setData(movieDetails); } jsonObjectList.add(vedioBean); } catch (JSONException e) { e.printStackTrace(); } System.out.println("movieDetails的长度:" + movieDetails.size()); System.out.println("jsonjsonObjectList的长度:" + jsonObjectList.size()); return jsonObjectList; } 3.将数据写入本地 private void print(String str, File file) { FileWriter fw = null; BufferedWriter bw = null; ; try { fw = new FileWriter(file, false); bw = new BufferedWriter(fw); bw.write(str + "\n"); bw.newLine(); bw.flush(); bw.close(); fw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); try { bw.close(); fw.close(); } catch (IOException e1) { // TODO: handle exception } } }
试试其它关键字
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
许杰
贡献的其它代码
(
1
)
.
从服务器上获取xml数据并写入本地
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3