`
chengfengyang
  • 浏览: 22260 次
社区版块
存档分类
最新评论

android中的JSON解析

阅读更多
1 。 什么是JSON

       就是现在网络上比较流行的数据交换格式 , 在网络上比较通用的数据交换格式呢就是XML ,在二个异构系统当中,进行数据交换,XMl是最好的选择,最近几年呢,这个JSON以体积小解码方便

      谷歌提供的API将JSON数据转换为JAVA数据,

      1 . JSON:JavaScript Object Notatoin

                     JSON这种数据来源于javascrip,

      2  。 JSON数据是一系列键值对的集合

                                                    JSON  VS    XML

A:二者的数据可读性基本相同

B:二者同样拥有丰富的解析手段

C:JSON的体积更小

D:JSON与JS交互更加方便

E:JSON对数据的描述性相对差

一个JSON例子:

{   "name":"Michael"
     "address":
     {
       "city":"Biejing"
        "street":"Chaoyang Road"
      }

}

中括号代表可以放很多个JSON对象



layout布局文件中
 <Button 
    android:id="@+id/buttonId"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="测试"
    />



mainAcitvity文件:
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class TestJson01Activity extends Activity {
    /** Called when the activity is first created. */
	private String jsonDate = "[{\"name\":\"Machael\",\"age\":21},{\"name\":Mike\",\"age\":30}]";
	private Button button = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        button = (Button)findViewById(R.id.buttonId);
        button.setOnClickListener(new ButtonListener());
    }
    private class ButtonListener implements OnClickListener
    {

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			JsonUtils jsonUtils = new JsonUtils();
			jsonUtils.parseJson(jsonDate);
		}
    	
    }
}


JsonUtils.java
import java.io.StringReader;

import com.google.gson.stream.JsonReader;

public class JsonUtils
{
	public void parseJson(String jsonDate)
	{
		try {
			//如果需要解析Json数据,首先要生成一个JsonReader对象
			JsonReader jsonReader = new JsonReader(new StringReader(jsonDate));
			jsonReader.beginArray();
			while (jsonReader.hasNext()) {
				jsonReader.beginObject();
				while (jsonReader.hasNext()) {
					String tagName = jsonReader.nextName();
					if (tagName.equals("name")) {
						System.out.println("name--->"+jsonReader.nextString());
					}
					else if (tagName.equals("age")) {
						System.out.println("age--->"+jsonReader.nextInt());
					}
				}
				jsonReader.endObject();
				
			}
			jsonReader.endArray();
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}
}



Json解析的第二种用法

1、 创建一个Activity文件,
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class TestJson02Activity extends Activity {
    /** Called when the activity is first created. */
	 private String jsonDate = "{\"name\":\"Machael\",\"age\":21}";   
	    private Button button = null; 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        button = (Button)findViewById(R.id.buttonId);   
        button.setOnClickListener(new ButtonListener());   

    }
    
    private class ButtonListener implements OnClickListener   
    {   
  
        @Override  
        public void onClick(View v) {   
            // TODO Auto-generated method stub   
            JsonUtils jsonUtils = new JsonUtils();   
            jsonUtils.parseUserFromJson(jsonDate);   
        }   
           
    }
}


创建一个User.java文件
public class User
{
private String name;
private int age;
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public int getAge() {
	return age;
}
public void setAge(int age) {
	this.age = age;
}

}


JsonUtils.java 文件
public class JsonUtils
{
	public void parseUserFromJson(String jsonDate)
	{
		//创建Gson对象
		Gson gson = new Gson();
		//将JsonDate转化为User对象
		User user = gson.fromJson(jsonDate, User.class);
		System.out.println("name--->"+user.getName());
		System.out.println("age--->"+user.getAge());
	}
}


当是多个对象时,将JsonUtils.java文件改下

public class JsonUtils
{
	public void parseUserFromJson(String jsonDate)
	{
		Type listType = new TypeToken<LinkedList<User>>() {
		}.getType();
		//创建Gson对象
		Gson gson = new Gson();
		LinkedList<User> users = gson.fromJson(jsonDate, listType);
		for (Iterator iterator = users.iterator(); iterator.hasNext();) {
			User user = (User) iterator.next();
			System.out.println("name--->"+user.getName());
			System.out.println("name--->"+user.getAge());
			
		}
	}
}
分享到:
评论

相关推荐

    Android_JSON数据解析

    Retrofit是另一种流行的Android网络库,它允许更优雅地处理网络请求和响应,包括JSON解析。添加依赖: ```groovy implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation '...

    Android 安卓 json解析

    总结,Android中的JSON解析包括本地和在线两种方式,都可以使用Android SDK内置的`org.json`包。在实际开发中,根据项目需求,可以选择最合适的解析策略,并确保正确处理各种异常情况,提升用户体验。

    Android中Json数据解析

    在Android开发中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它使得人和机器都能容易地读取和编写数据。...通过不断实践,你可以更加灵活地运用这些工具,解决各种复杂的JSON解析问题。

    Android 的 JSON解析源码

    理解并能熟练运用JSON解析对于一个Android开发者来说至关重要。本篇文章将深入探讨Android平台上的JSON解析源码,帮助你更好地理解和优化你的应用性能。 一、JSON基本结构 JSON主要包含两种数据结构:对象和数组。...

    android采用json解析数据的实例

    综上所述,"android采用json解析数据的实例"涵盖了从网络请求JSON数据、解析JSON、到将数据绑定到UI的全过程。学习这个实例有助于开发者深入理解Android中如何有效地处理网络数据,提高应用的用户体验。在实际开发中...

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

    在Android开发中,有时我们需要从服务器获取JSON数据并解析它以展示在应用中。这个"android 动态解析获取json数据的键值对"的项目就是针对这种情况的一个实例,主要展示了如何在Eclipse环境下,不预先创建JSON键值...

    android JSON解析放入ListView

    2. Android中的JSON解析库: - `org.json`:Android SDK自带的JSON解析库,支持JSONObject和JSONArray的基本操作。 - `com.google.code.gson`: Google提供的Gson库,能将Java对象直接转换为JSON字符串,反之亦然,...

    Android解析json速度对比

    在Android开发中,JSON作为一种轻量级的数据交换格式,被广泛用于网络通信和数据存储。在处理大量JSON数据时,解析速度就显得尤为重要,因为它...在Android开发中,选择合适的JSON解析库是提升整体应用性能的关键一环。

    android封装json解析

    android封装的json解析,可以直接解析对象或者list 如果有不明白的地方,可以联系我: QQ:840950105 Email:vipa1888@163.com Author:spring sky

    Android Json 解析demo

    在“Android Json 解析demo”项目中,可能包含了创建JSON解析器的代码示例,以及如何在Android Studio中运行和测试这些功能的步骤。你可以通过查看项目中的JsonDemo文件来学习具体的实现细节,包括如何读取网络上的...

    android JSON解析数据 android解析天气预报

    笔者近期做到对天气预报JSON数据解析,在此小记。 天气预报接口:http://wthrcdn.etouch.cn/weather_mini?citykey=101200101 JSON数据如下: { desc: OK, status: 1000, data: { wendu: 14, ganmao: 天气...

    老罗android 解析json数据源码

    9. **测试**:为了确保JSON解析的正确性,编写单元测试和集成测试是必要的。JUnit、Mockito等工具可以帮助进行测试。 在"06.android解析json数据(ppt&源码)"这个文件中,可能包含了讲解PPT和实际的源码示例。通过...

    Android Studio解析JSON对象

    在Android Studio中解析JSON,通常使用的是`org.json`库,它包含两个主要类:`JSONObject`和`JSONArray`。`JSONObject`用于处理键值对,而`JSONArray`则处理有序的元素列表。 解析JSON对象的步骤如下: 1. **导...

    Adroid 中json解析

    在这个主题中,我们将深入探讨Android中JSON解析的基本概念、常用库以及实际应用。 1. JSON基础知识 JSON是一种文本格式,它基于JavaScript语法,但独立于语言。它以键值对的形式存储数据,易于阅读和编写,同时也...

    android json解析(包含服务器端,客户端)

    本教程将深入讲解Android客户端和服务器端如何进行JSON解析。 一、JSON基础 JSON是一种轻量级的文本格式,它基于JavaScript的一个子集。数据格式简单,易于人阅读和编写,同时也易于机器解析和生成。基本数据类型...

    json解析所用到的所有包

    以下是一些关于Android中JSON解析的关键知识点: 1. **Gson库**:Google提供的Gson库是一个强大的JSON库,它能够将Java对象转换为JSON字符串,同时也能将JSON字符串反序列化为Java对象。使用Gson可以非常方便地处理...

    android之json和gson数据解析最完整的代码例子(包括各种样式的json数据)

    二、Android中的JSON解析 在Android中,我们通常使用`org.json`库或`com.google.gson`库来解析JSON数据。 1. `org.json`库:这是Android SDK自带的一个轻量级库,主要用于解析简单的JSON数据。 - JSONObject:...

    android客户端json解析

    本教程将详细介绍如何在Android客户端进行JSON解析,以获取并处理来自Web服务器的数据。 首先,理解JSON的基本结构至关重要。JSON是一种基于文本的格式,它以键值对的形式存储数据,类似于JavaScript的对象。一个...

    android中的json解析

    在Android开发中,JSON(JavaScript Object Notation)是一种常见的数据交换格式,用于在客户端和...在实际开发中,可以使用Gson库或其他现代库如Retrofit+Moshi,它们提供了更简洁、安全且性能高效的JSON解析方式。

    Android Studio解析JSON数组

    这个过程对于任何初学者来说都是一个重要的学习点,因为它涉及到网络数据获取、JSON解析以及UI展示。 首先,我们需要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也...

Global site tag (gtag.js) - Google Analytics