- 浏览: 21122 次
最新评论
在Android应用开发中,常用的数据交换格式有XML和JSON,这两种方式各有各的好处,我们在特定的应用开发中可以选择合适的一种。下面来看一下JOSN数据解析:
例子永远是最好的教程,下面我们来看个例子!
有这样一个JSON数据:"{"username":"zhangsan","password":"123456"}"
通过解析后对应的数据显示在相应的控件中:
就是上面这种效果。
在Android中使用json需要一个jar包,gson-1.7.jar;可以在google的网站上下载。把这个包加到项目的构建路径中就行了。
下面是这个项目的源码(源码中的类及方法可以参考API文档):
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gufengxiachen"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".json"
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>
</manifest>
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:text="@string/username"
/>
<EditText
android:id="@+id/username"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
></EditText>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/password"
/>
<EditText
android:id="@+id/password"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
></EditText>
<Button
android:id="@+id/parse"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/parse"
>
</Button>
</LinearLayout>
json.java:
package com.gufengxiachen;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class json extends Activity {
/** Called when the activity is first created. */
private String name;
private String ages;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAges() {
return ages;
}
public void setAges(String ages) {
this.ages = ages;
}
private EditText username=null;
private EditText password=null;
private Button parse=null;
private String jsonData = "[{\"username\":\"zhagnsan\",\"password\":\"123456\"}]";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
username = (EditText)findViewById(R.id.username);
password = (EditText)findViewById(R.id.password);
parse = (Button)findViewById(R.id.parse);
parse.setOnClickListener(new parseListener());
}
public class parseListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ParseJson parseJson = new ParseJson();
json json = parseJson.parse(jsonData);
username.setText(json.getName());
password.setText(json.getAges());
}
}
}
ParseJson.java:
package com.gufengxiachen;
import java.io.IOException;
import java.io.StringReader;
import com.google.gson.stream.JsonReader;
public class ParseJson {
public json parse(String jsonData){
json json =new json();
JsonReader jsonReader = new JsonReader(new StringReader(jsonData));
try {
jsonReader.beginArray();
while(jsonReader.hasNext()){
jsonReader.beginObject();
while(jsonReader.hasNext()){
String tagName = jsonReader.nextName();
if(tagName.equals("username")){
json.setName(jsonReader.nextString());
System.out.println(json.getName());
}else if(tagName.equals("password")){
json.setAges(""+jsonReader.nextInt());
System.out.println(json.getAges());
}
}
jsonReader.endObject();
}
jsonReader.endArray();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return json;
}
}
例子永远是最好的教程,下面我们来看个例子!
有这样一个JSON数据:"{"username":"zhangsan","password":"123456"}"
通过解析后对应的数据显示在相应的控件中:
就是上面这种效果。
在Android中使用json需要一个jar包,gson-1.7.jar;可以在google的网站上下载。把这个包加到项目的构建路径中就行了。
下面是这个项目的源码(源码中的类及方法可以参考API文档):
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gufengxiachen"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".json"
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>
</manifest>
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:text="@string/username"
/>
<EditText
android:id="@+id/username"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
></EditText>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/password"
/>
<EditText
android:id="@+id/password"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
></EditText>
<Button
android:id="@+id/parse"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/parse"
>
</Button>
</LinearLayout>
json.java:
package com.gufengxiachen;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class json extends Activity {
/** Called when the activity is first created. */
private String name;
private String ages;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAges() {
return ages;
}
public void setAges(String ages) {
this.ages = ages;
}
private EditText username=null;
private EditText password=null;
private Button parse=null;
private String jsonData = "[{\"username\":\"zhagnsan\",\"password\":\"123456\"}]";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
username = (EditText)findViewById(R.id.username);
password = (EditText)findViewById(R.id.password);
parse = (Button)findViewById(R.id.parse);
parse.setOnClickListener(new parseListener());
}
public class parseListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ParseJson parseJson = new ParseJson();
json json = parseJson.parse(jsonData);
username.setText(json.getName());
password.setText(json.getAges());
}
}
}
ParseJson.java:
package com.gufengxiachen;
import java.io.IOException;
import java.io.StringReader;
import com.google.gson.stream.JsonReader;
public class ParseJson {
public json parse(String jsonData){
json json =new json();
JsonReader jsonReader = new JsonReader(new StringReader(jsonData));
try {
jsonReader.beginArray();
while(jsonReader.hasNext()){
jsonReader.beginObject();
while(jsonReader.hasNext()){
String tagName = jsonReader.nextName();
if(tagName.equals("username")){
json.setName(jsonReader.nextString());
System.out.println(json.getName());
}else if(tagName.equals("password")){
json.setAges(""+jsonReader.nextInt());
System.out.println(json.getAges());
}
}
jsonReader.endObject();
}
jsonReader.endArray();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return json;
}
}
发表评论
-
SQLite数据库
2011-10-21 11:12 9961。从www.sqlite.org下载SQLite 3.3.4 ... -
android中的有道词典实例
2011-10-19 22:51 8991、布局文件main.xml <?xml version ... -
mars老师的googleMap示例(二)
2011-10-15 17:14 849manifest.xml文件 <?xml version ... -
mars老师的googleMap(一)
2011-10-15 10:43 795一、申请 Apikey Apikey Apikey Apike ... -
Intent在android中的几种用法
2011-10-14 09:26 757如果是从BroadcastReceiver 启动一个新的Act ... -
基于Service与ContentProvider的音乐播放实例
2011-10-13 23:37 731Android的核心也就是Activi ... -
android之用户定位(一)
2011-10-13 19:53 16711、User Location 能做什么 1) 获取用户的位置 ... -
android之蓝牙操作(二)
2011-10-13 18:43 12741、修改本蓝牙设备的可见性 2、扫描周围可用蓝牙设备 步骤: ... -
android之蓝牙操作(一)
2011-10-13 16:35 1208与蓝牙相关的API 1、BluetoothAdapter ... -
android中的JSON解析
2011-10-12 10:17 8891 。 什么是JSON 就是现在网络上比较流行 ... -
Animations的使用(六)
2011-10-11 17:44 1187LayoutAnimationController的使用方法( ... -
Animations的使用(五)
2011-10-11 17:41 7051 AnimationSet的使用方法 什么是Animat ... -
Animations使用 (四)
2011-10-11 17:36 551Animations的第二种使用方法(第一种见1) 步骤: ... -
android面试
2011-10-10 21:12 766为什么要用ContentProvider?它和sql的实现上有 ... -
android中的animations的用法(三)
2011-10-10 21:07 694一 LayoutAnimationController ... -
android中的animations的用法(二)
2011-10-10 20:59 771一 AnimationSet 的用法 二 Interpol ... -
android中的animations的用法 (一)
2011-10-10 20:56 1309Animations 可分为两大类: 一 Tweened A ...
相关推荐
Android_JSON数据解析 博客里面的Demo
Android中Json的数据解析博文源码。博文请关注:http://blog.csdn.net/yegongheng
Android 实用的数据json数据解析封装类,能快速解析任何形式json数据
android之json和gson数据解析最完整的代码例子(包括各种样式的json数据) 本人在2.3.3模拟器上已亲测可以运行。最适合学习json 或gson数据解析的初学者。
Android 之 Json 数据解析 完整的json解析数据方法
android中的JSON数据解析库gson和fastjson,gson.jar和fastjson.jar是android中解析JSON数据非常好用的两个工具
老罗android 解析json数据源码
eclipse项目。获取raw文件下的json文件。无需编写json数据里面key值的实体类,动态获取里面的键值对的值。并在列表显示
android网络解析数据,JSON解析数据的方法
自己写的json解析,不使用第三方的jar包,简单易懂,分为本地json解析和online json解析,网上的只需要修改一下url地址即可
最近在整理自己写过的一些应用,发现这个也许对大家有帮助,android通过http页面获取json标准格式数据并且解析其中对象的全过程,其中包含android连接http页面方法,android解析json格式数据方法,json标准化格式...
Android解析Json数据的PPT和源码
代码简单,逻辑清晰,对不同的JSON数据格式都进行了封装和解析,都采用函数方法,能够非常方便的使用
android json数据下载与解析demo,实现了http下载json服务器数据,并通过JsonObject解析json数据
适合新手参考,简单实用,因为我也是新手,所以用的都是比较基础的方法实现。...okhttp方法获取服务器JSON数据或者获取本地android studio内的txt文本解析,然后显示在listview上,listview增加了上滑加载更多的功能
1. 例子代码有两部分:androidJson是andoird的工程,inxdex.php是php服务器json数据产生部分代码。 2. 服务器端提供http(get)获取方式获取json数据的api例子,是用php写的。 4. android的apk给你说完成http数据...
android框架解析JSON数据放入ListView的例子
Android处理JSON数据-JSON数据解析.pdf 学习资料 复习资料 教学资源
在模块对应的包名下创建JSON数据对应的实体类WeatherInfo类,实体类中的成员名称要与JSON数组的key值一致,并为每个属性添加get和set方法。public String getTemp() {return temp;}public void setTemp(String temp)...
android json数据的 封装与解析,代码清晰,可供参考。