- 浏览: 537642 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
tangyunliang:
大哥你太历害了谢谢
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
u013015029:
LZ,请问下,在// 添加消息到聊天窗口 , 这里获取Ed ...
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
endual:
怎么保持会话,我搞不懂啊
Android基于XMPP Smack Openfire开发IM【一】登录openfire服务器 -
donala_zq:
显示:[2013-11-30 11:50:36 - Andro ...
android-----------新浪微博 -
donala_zq:
哥,运行不了啊
android-----------新浪微博
JSON的定义:
一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。 – Json.org
JSON Vs XML
1.JSON和XML的数据可读性基本相同
2.JSON和XML同样拥有丰富的解析手段
3.JSON相对于XML来讲,数据的体积小
4.JSON与JavaScript的交互更加方便
5.JSON对数据的描述性比XML较差
6.JSON的速度要远远快于XML.
运行效果图:
[img]
[/img]
json数据结构图,数据有些多,截两张图:
[img]
[/img]
[img]
[/img]
封装的一个JSONUtil工具类,代码如下:
编写主Activity代码MainActivity,代码如下:
main.xml
AndroidManifest.xml:
记得添加访问网络的权限!!!!!!!
一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。 – Json.org
JSON Vs XML
1.JSON和XML的数据可读性基本相同
2.JSON和XML同样拥有丰富的解析手段
3.JSON相对于XML来讲,数据的体积小
4.JSON与JavaScript的交互更加方便
5.JSON对数据的描述性比XML较差
6.JSON的速度要远远快于XML.
运行效果图:
[img]
[/img]
json数据结构图,数据有些多,截两张图:
[img]
[/img]
[img]
[/img]
封装的一个JSONUtil工具类,代码如下:
package com.amaker.json; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.params.BasicHttpParams; import org.apache.http.protocol.HTTP; import org.json.JSONException; import org.json.JSONObject; import android.util.Log; /** * @author zzl * Json封装的工具类. */ public class JSONUtil { private static final String TAG = "JSONUtil"; /** * 获取json内容 * @param url * @return JSONArray * @throws JSONException * @throws ConnectionException */ public static JSONObject getJSON(String url) throws JSONException, Exception { return new JSONObject(getRequest(url)); } /** * 向api发送get请求,返回从后台取得的信息。 * * @param url * @return String */ protected static String getRequest(String url) throws Exception { return getRequest(url, new DefaultHttpClient(new BasicHttpParams())); } /** * 向api发送get请求,返回从后台取得的信息。 * * @param url * @param client * @return String */ protected static String getRequest(String url, DefaultHttpClient client) throws Exception { String result = null; int statusCode = 0; HttpGet getMethod = new HttpGet(url); Log.d(TAG, "do the getRequest,url="+url+""); try { //getMethod.setHeader("User-Agent", USER_AGENT); HttpResponse httpResponse = client.execute(getMethod); //statusCode == 200 正常 statusCode = httpResponse.getStatusLine().getStatusCode(); Log.d(TAG, "statuscode = "+statusCode); //处理返回的httpResponse信息 result = retrieveInputStream(httpResponse.getEntity()); } catch (Exception e) { Log.e(TAG, e.getMessage()); throw new Exception(e); } finally { getMethod.abort(); } return result; } /** * 处理httpResponse信息,返回String * * @param httpEntity * @return String */ protected static String retrieveInputStream(HttpEntity httpEntity) { int length = (int) httpEntity.getContentLength(); if (length < 0) length = 10000; StringBuffer stringBuffer = new StringBuffer(length); try { InputStreamReader inputStreamReader = new InputStreamReader(httpEntity.getContent(), HTTP.UTF_8); char buffer[] = new char[length]; int count; while ((count = inputStreamReader.read(buffer, 0, length - 1)) > 0) { stringBuffer.append(buffer, 0, count); } } catch (UnsupportedEncodingException e) { Log.e(TAG, e.getMessage()); } catch (IllegalStateException e) { Log.e(TAG, e.getMessage()); } catch (IOException e) { Log.e(TAG, e.getMessage()); } return stringBuffer.toString(); } }
编写主Activity代码MainActivity,代码如下:
package com.amaker.json; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.os.Bundle; import android.widget.ImageView; import android.widget.TextView; public class MainActivity extends Activity { private static final String BASE_URL = "http://open.ifenghui.cn/mobilecms/interface/mobile.action?code=888032100100&m=get_coolimages&p=1&filter=all"; private TextView tv_n; private TextView tv_error; private TextView tv_p; private TextView tv_pcount; private TextView tv_author; private ImageView img; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); getJSON(); } /** * 实例化组件 */ public void init(){ tv_n = (TextView) findViewById(R.id.textView0); tv_error = (TextView) findViewById(R.id.textView1); tv_p = (TextView) findViewById(R.id.textView2); tv_pcount = (TextView) findViewById(R.id.textView3); tv_author = (TextView) findViewById(R.id.textView4); img = (ImageView) findViewById(R.id.imageView1); } /** * 解析json数据 */ public void getJSON(){ try { //获取后台返回的Json对象 JSONObject mJsonObject = JSONUtil.getJSON(BASE_URL); String n = mJsonObject.getString("n"); String error = mJsonObject.getString("error"); String p = mJsonObject.getString("p"); String pcount = mJsonObject.getString("pcount"); //获得图书数组 JSONArray mJsonArray = mJsonObject.getJSONArray("result"); //获取第一本图书 JSONObject firstBook = mJsonArray.getJSONObject(0); String author = firstBook.getString("author"); tv_n.setText(n); tv_error.setText(error); tv_p.setText(p); tv_pcount.setText(pcount); tv_author.setText(author); } catch (JSONException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } }
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/textView0" android:text="@string/hello" /> <TextView android:text="TextView" android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:text="TextView" android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:text="TextView" android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:text="TextView" android:id="@+id/textView4" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ImageView android:layout_width="wrap_content" android:src="@drawable/icon" android:layout_height="wrap_content" android:id="@+id/imageView1" /> </LinearLayout>
AndroidManifest.xml:
记得添加访问网络的权限!!!!!!!
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.amaker.json" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="10" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".MainActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-permission android:name="android.permission.INTERNET"></uses-permission> </manifest>
发表评论
-
Android中如何模拟一次点击(touch)事件
2014-05-06 10:41 0在Android中有时需要模拟某一个View的touch事件, ... -
Android程序Crash时的异常上报
2014-04-28 18:15 0http://blog.csdn.net/singwhatiw ... -
android程序中证书签名校验的方法
2014-04-28 17:58 2015android程序中证书签名校验的方法一 2013-02 ... -
MD5理解错了,哎
2014-03-17 14:14 0MD5只对数据加密是无法解密的,也就是说,你把100加密后,就 ... -
Android 获取网络时间
2014-03-12 11:42 2048Android 获取网络时间 在网上看到的最常见的方式有: ... -
SQLite清空表并将自增列归零
2014-03-05 18:02 1558SQLite清空表并将自增列归零 作者:Zhu Yanfeng ... -
Handler小看一下
2013-11-11 16:42 0android handler调用post方法还是阻塞 su ... -
Frame Animation小看一下
2013-10-12 16:30 814Demo运行效果图: 源码: -
动画小学一下
2013-10-12 16:14 741转自: http://www.eoeandroid.com/f ... -
Android 动画之ScaleAnimation应用详解
2013-10-12 15:49 1026===============eoeAndroid社区推荐:= ... -
android开发中的一个工具类
2013-06-19 16:04 0package com.wanpu.login.dialog; ... -
android TextView怎么设置个别字体颜色并换行?
2013-06-20 09:25 1709(1)、TextView 设置个别字体颜色 TextView ... -
Android开发之文件下载,状态时显示下载进度,点击自动安装
2013-05-07 15:38 1440在进行软件升级时,需要进行文件下载,在这里实现自定义的文件下载 ... -
android中的状态保存
2013-04-07 14:21 985package com.zzl.call; import ... -
android动画基础:tween动画
2013-04-06 11:21 1265工程结构图: [img] [/img] 四个动画的xml ... -
面试中遇到的几个问题
2013-06-09 11:56 1023SAX与DOM之间的区别 SAX ( ... -
Android获取其他包的Context实例,然后调用它的方法,反射!!!
2013-03-25 10:32 1233Android中有Context的概念,想必大家都知道。Con ... -
Android的内存机制和常见泄漏情形
2013-03-06 16:55 800一、 Android的内存机制 Android的程序由Ja ... -
JUnit测试小小demo
2013-03-06 16:37 1186运行效果图: [img] [/img] 项目结构图 ... -
android开发中的异常小工具
2013-03-04 15:53 905package com.zzl.tools; impor ...
相关推荐
这个“android json数据下载与解析demo”涵盖了Android开发中的多个重要概念,包括网络请求、JSON解析、异步操作以及数据展示。通过学习和实践这个示例,开发者可以更好地理解和掌握Android应用中与网络交互和数据...
总结,C#中的JSON解析主要依赖于Json.NET库,通过`JsonConvert.DeserializeObject`方法可以方便地将JSON字符串转换为C#对象,包括字典类型。通过理解JSON的结构和C#的类型系统,可以高效地处理网络数据交换。在实际...
这个“android demo”显然是一个展示如何在Android平台上处理JSON数据、发送JSON字符串以及进行JSON解析的示例项目。下面将详细阐述相关知识点。 一、JSON基础知识 1. JSON格式:JSON采用键值对的形式存储数据,键...
同时,记得在处理网络请求时考虑到异步操作,使用回调、闭包或协程等技术来处理数据。 总之,iOS开发中解析JSON是至关重要的技能,`NSJSONSerialization` 提供了简单且强大的工具来处理这一任务。通过熟练掌握这些...
通过这个简单的Android Demo,我们可以学习到如何利用Volley从网络获取JSON数据,并对其进行解析。实际项目中,你可能还需要考虑网络连接的稳定性、数据缓存、错误重试等复杂情况。在开发过程中,确保遵循最佳实践,...
6. **客户端代码**:`AppDemo`可能是一个客户端应用,它可能会发送HTTP请求到服务端,获取JSON响应,并使用Gson解析数据。在Android环境中,这通常涉及网络请求库(如Retrofit或Volley)和异步处理。 7. **数据库...
总结来说,这个主题涵盖了Android客户端通过SSH协议获取服务器返回的JSON数据,涉及SSH连接、JSON解析、并发处理等技术,对于学习Android网络编程和数据处理的开发者具有很高的参考价值。理解并掌握这一系列操作,...
总结起来,"Highcharts json demo"项目展示了如何利用Highcharts与JSON数据结合,实现异步请求和数据可视化。这个过程涉及到前端的AJAX请求、JSON数据解析以及Highcharts的配置与渲染。掌握这些技术,不仅有助于提升...
3. **JSON解析**:服务器返回的通常是JSON格式的数据,这需要使用Android的内置库如`org.json`或第三方库如Gson、Jackson或FastJson来解析。解析后的数据可以转化为Java对象,便于进一步处理和显示。 4. **Android ...
在C语言中实现JSON-RPC,你需要一个JSON解析库,如json-c或yajl。这些库提供API来解析JSON字符串到C数据结构,以及将C数据结构转换回JSON字符串。对于RPC部分,你可以自己实现协议逻辑,或者使用现有的库,如libjson...
这个简单的demo是一个很好的学习资源,帮助初学者理解如何使用jQuery的AJAX功能与后端Servlet交互,以及如何使用JSON进行数据交换。通过实践这个demo,你可以更深入地了解这些技术的实际应用。同时,它也展示了Web...
4. **JSON解析**:JSON(JavaScript Object Notation)是轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。Java有多个流行的JSON库,如Gson、Jackson和org.json。Gson直接将JSON字符串转换为Java...
4. **错误处理**:在网络请求或解析过程中,可能会遇到各种问题,如网络异常、JSON解析错误等。"ParseJsonDemo"工具类应包含适当的错误处理机制,确保在出现问题时能优雅地处理并提供反馈。 5. **灵活性与可扩展性*...
总的来说,JSON-Demo[1]可能是关于如何使用JSON进行数据交换的示例,可能包括创建、解析JSON对象,以及在JavaScript(可能配合jQuery库)中与服务器进行数据交互的实践。这个示例可能通过提供一个简单的JSON数据结构...
5. **性能优化**:大量JSON数据解析可能影响性能,考虑使用异步操作或缓存机制以提高用户体验。 在“test_NSDictinary_NSString_toDictionary”这个示例中,可能包含了如何从JSON字符串创建`NSDictionary`对象的...
1.解析json格式数据,主要包括图片,文本 2.使用线程和AsynTask俩种异步方式从网络下载图片 3.handler的使用 4.使用Lru缓存算法 5.改进加载:仅在listview滑动停止后才加载可见项,滑动中不加载
本示例“fastjson+ajax+sppringmvc前后使用json传值的demo”展示了如何利用这些技术进行高效的数据传输。以下是相关知识点的详细说明: 1. JSON:JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,是网络数据交换的常用格式。现在,我们来详细探讨这三个技术在实际应用中的相关知识点。 1. **Ajax*...
这个Demo项目涵盖了多个关键知识点,包括异步加载、网络编程、JSON解析以及LruCache图片缓存策略,这些都是在实际开发中处理数据流和用户体验优化的重要技术。 1. **异步加载**: 在Android中,为了防止UI线程被...
1. **创建JSON解析器**:在服务器端的ASP文件中,首先创建一个ScriptControl对象,并设置其Language属性为"JScript",因为JSON.parse()函数是JavaScript的一部分。 ```vbscript Dim jsonCtrl Set jsonCtrl = Server...