`

android解析json(2)

阅读更多
两种android解析json的例子
第一个事件是android直接解析json字符串
第二个事件是将json写在文件中,并放在raw目录下 进行解析
工程项目结构在最后附件,双击图片查看原图

完整代码如下:


json形式为:
{   
"firstname":"Richard",   
"lastname":"Stearns",   
"almamater":"Cornell University",   
"occupation":"President, World Vision",   
"interview":   
    {   
        "source" : "http://blog.guykawasaki.com/2007/05/ten_or_so_quest.html#ixzz0giEIX0zY",   
        "questions":   
            [   
            {   
            "Question": "How much money does World Vision raise every year?",   
            "Answer": "Worldwide, World Vision raises about $2 billion annually; the U.S. office, which I head up, raises about half of the total."   
            },   
            {   
            "Question": "Is this the 80/20 rule where twenty percent of the people send in eighty percent of the money or are donations more spread out?",   
            "Answer": "World Vision's strength is that we are supported by hundreds of thousands of faithful people who give us about a dollar a day by sponsoring children. Our \"major donors\" account for less than five percent of our total income. Also, for a non-profit, we have quite a diversified portfolio of revenue. Just over forty percent is cash from private citizens; thirty percent is government grants in food and cash; and about thirty percent are products donated from corporation--what we call \"gifts-in-kind.\""   
            }   
            ]   
    }   
}   


实现代码:

import java.io.InputStream;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.R.integer;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class JsonAndroidActivity extends Activity implements OnClickListener{
	private Button jsonbutton,jsonbutton2;
	private JSONObject obj;
	private String staticObject = "{\"firstname\":\"Steve\",\"lastname\":\"Jobs\",\"cellphones\":\"0\"}";   
	
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        jsonbutton = (Button)findViewById(R.id.jsonbutton);
        jsonbutton2 = (Button)findViewById(R.id.jsonbutton2);
        jsonbutton.setOnClickListener(this);
        jsonbutton2.setOnClickListener(this);
    }
    
    @Override
    public void onClick(View v) {
    	switch(v.getId()){
    		case R.id.jsonbutton:{
	    		try {
	    			obj = new JSONObject(staticObject);
	    			String x = obj.get("firstname").toString() + "" + obj.get("lastname").toString() + "has" + obj.getInt("cellphones")+ "Android phones";
	    			setStatus(x);
	    		} catch (JSONException e) {
	    			setStatus("Error occured " + e.getMessage());
	    		}
    		}
    		
    		case R.id.jsonbutton2:{
    			try {
					String x = null;
					InputStream is = this.getResources().openRawResource(R.raw.interview);
					byte [] buffer = new byte[is.available()];
					while(is.read(buffer)!= -1){
						String json = new String(buffer);
						obj = new JSONObject(json);
						x = obj.getString("firstname")+""+obj.getString("lastname")+"n";
						x += obj.getString("occupation") + "n";
						
						JSONObject interview = obj.getJSONObject("interview");
						x += "Interview source:" + interview.getString("source") + "n";
						
						JSONArray questions = interview.getJSONArray("questions");
						x += "Number of questions:" +questions.length() + "nn";
						
						int i;
						for(i=0; i<questions.length(); i++){
							JSONObject qa = questions.getJSONObject(i);
							x+= "-------n";
							x += "Q" + (i+1) + ". " + qa.getString("Question") + "nn";   
					        x += "A" + (i+1) + ". " + qa.getString("Answer") + "n";   
						}
						setStatus(x);
					}
				} catch (Exception e) {
					setStatus("Error w/file: " + e.getMessage());   

				}
    		}
    	}
    	
    }
    
    void setStatus(String x){
    	TextView tv = (TextView)findViewById(R.id.jsontextView);
    	tv.setText(x);
    }
}



layout.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:text="TextView" 
    		  android:id="@+id/jsontextView" 
    		  android:layout_width="wrap_content"
    		  android:layout_height="wrap_content"/>

	<Button android:text="json" 
			android:id="@+id/jsonbutton" 
			android:layout_width="wrap_content" 
			android:layout_height="wrap_content"/>
	
	<Button android:text="json2" 
			android:id="@+id/jsonbutton2" 
			android:layout_width="wrap_content" 
			android:layout_height="wrap_content"/>
</LinearLayout>

  • 大小: 12.4 KB
1
0
分享到:
评论
1 楼 weisi2375 2012-04-26  
还不错    

相关推荐

    Android_JSON数据解析

    本篇将详细讲解如何在Android应用中解析JSON数据,主要涉及以下几个方面: 1. JSON基本结构 JSON由两种基本结构构成:对象(Object)和数组(Array)。对象是以花括号 `{}` 包围的键值对集合,键用双引号括起,如`...

    Android应用源码之Android 解析json_dome.zip

    2. **解析JSON数组:** 对于包含多个数据的JSON数组,我们可以使用`JSONArray`。例如: ```java String jsonArrayString = "[{\"name\":\"John\"},{\"name\":\"Jane\"}]"; JSONArray jsonArray = new JSONArray...

    老罗android 解析json数据源码

    本教程聚焦于老罗讲解的Android解析JSON数据的源码分析,这对于深入理解JSON处理以及优化应用程序性能至关重要。 首先,我们需要了解JSON的基本结构。JSON是一种基于键值对的格式,数据以键值对的形式存储,如{"key...

    Android Studio解析JSON对象

    本主题聚焦于“Android Studio解析JSON对象”,这是一个非常关键且实用的技能,因为JSON作为一种轻量级的数据交换格式,广泛应用于网络通信和数据存储。JSON对象可以方便地表示各种复杂的数据结构,包括数组、键值...

    android 动态解析获取json数据的键值对

    这个"android 动态解析获取json数据的键值对"的项目就是针对这种情况的一个实例,主要展示了如何在Eclipse环境下,不预先创建JSON键值对应的实体类,而是动态地解析JSON并将其内容显示在列表上。 首先,我们要理解...

    android解析JSON字符串

    Android 解析 JSON 字符串 Android 解析 JSON 字符串是 Android 应用程序中非常常见的一种数据交互方式。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和...

    Android解析json速度对比

    在“Android解析json速度对比”的测试中,我们通常会设置一个标准的JSON数据集,然后使用这三个库进行反序列化操作,并记录每种库所花费的时间。测试方法可能包括以下步骤: 1. **数据准备**:创建一个包含大量键值...

    Android 解析json_dome.zip

    2. **Android解析JSON的库** 在Android中,我们通常使用两种库来解析JSON数据: - `org.json`:这是Android SDK自带的库,提供了JSONObject和JSONArray类,可以方便地解析JSON对象和数组。 - `...

    Android解析Json数据的PPT和源码

    这个资料包包含了一个关于Android解析JSON数据的PPT和源码,可以帮助开发者深入理解和实践Android中如何处理JSON数据。 首先,我们要理解JSON的基本结构。JSON由键值对组成,键用引号括起来,后跟冒号,值可以是...

    android解析json小程序

    下面将详细阐述Android解析JSON的基本步骤和涉及的技术点。 首先,要理解JSON的结构。JSON由键值对组成,可以是对象(对象以大括号{}包围)或数组(数组以方括号[]包围)。例如: ```json { "name": "John", ...

    安卓Android源码——安卓Android 解析json_dome.zip

    本资料“安卓Android源码——安卓Android 解析json_dome.zip”聚焦于如何在Android应用中解析JSON数据,为开发者提供了实践案例和代码示例。以下将详细介绍Android中处理JSON的相关知识点。 1. JSON基本结构: ...

    android解析Json数据

    本篇将深入探讨如何在Android平台上使用org.json库解析JSON数据。 一、JSON基础知识 1. JSON数据结构:主要包括对象(Object)和数组(Array)。对象由键值对组成,用花括号{}包围;数组是一组有序的值,用方括号[]...

    Android:实验项目:解析JSON数据实现天气预报显示

    使用解析JSON文件获取天气预报信息,并将不同城市的天气信息显示在主界面中,应用程序运行时界面如图1所示。单击其他城市按钮时,将显示相应城市对应的天气信息,如图2所示4.在模块对应的包名下创建JSON数据对应的...

    Android 安卓 json解析

    或解析JSON数组: ```java JSONArray jsonArray = new JSONArray(jsonData); for (int i = 0; i (); i++) { JSONObject obj = jsonArray.getJSONObject(i); // 解析对象属性 } ``` ### 3. 在线JSON解析 在线JSON...

    Android解析JSON格式

    ### Android解析JSON格式 在Android应用开发中,与服务器交互获取数据是常见需求之一,而JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。因此,掌握...

    Android Studio解析JSON数组

    在这个场景中,我们将探讨如何在Android Studio中解析JSON数组,并将获取的数据展示在ListView上。这个过程对于任何初学者来说都是一个重要的学习点,因为它涉及到网络数据获取、JSON解析以及UI展示。 首先,我们...

    Android读取本地json文件的方法(解决显示乱码问题)

    - **Android操作JSON格式数据**:Android提供了Gson库、org.json库等工具来解析和生成JSON数据。 - **Android数据库操作**:SQLite是Android内置的轻量级数据库,可以用于持久化数据。 - **Android Activity操作**:...

    Android解析json数据

    总结,Android解析JSON数据是常见的任务,开发者可以选择不同的库和方法来实现。理解JSON的结构,熟练使用解析库,以及妥善处理网络请求和异步操作,是提升Android开发能力的关键步骤。通过阅读给定的博客文章,可以...

    老罗android视频开发源码和ppt--android 解析json

    本资源包“老罗android视频开发源码和ppt--android 解析json”是由知名讲师罗升阳(老罗)提供的,旨在帮助开发者深入理解如何在Android平台上解析和处理JSON数据。罗升阳先生以其深入浅出的教学风格和丰富的实战...

    Gson解析json数据

    在本文中,我们将深入探讨如何使用Gson解析JSON数据,包括处理简单JSON和复杂的JSON结构。 首先,我们要了解JSON的基本概念。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,...

Global site tag (gtag.js) - Google Analytics