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

Android学习之JSON数据解析

阅读更多
在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;

}

}

分享到:
评论

相关推荐

    Android_JSON数据解析

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

    Android中Json数据解析

    本教程将深入探讨在Android中如何解析和处理JSON数据。 首先,我们需要理解JSON的基本结构。JSON是一种基于键值对的数据表示方式,主要由对象(Object)和数组(Array)构成。对象用花括号 `{}` 包裹,键值对以冒号...

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

    JSON(JavaScript Object Notation)和Gson是Android开发中常用的数据序列化和反序列化工具,...以上就是关于“Android之json和gson数据解析最完整的代码例子”的详细介绍,希望对您在学习和使用JSON及Gson时有所帮助。

    Android 实用的数据json数据解析封装类

    本篇文章将详细介绍如何创建一个实用的JSON数据解析封装类,以便快速有效地处理各种形式的JSON数据。 首先,我们需要引入一个JSON库,Android SDK本身包含了org.json库,但为了更强大的功能和更好的性能,推荐使用...

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

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

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

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

    Android JSON数据的封装及解析

    本教程将深入讲解如何在Android中对JSON数据进行封装和解析,以便于在应用程序中有效使用。 一、JSON基础知识 JSON是一种独立于语言的数据表示格式,它基于ECMAScript的一个子集。一个基本的JSON对象由键值对组成,...

    Android 安卓 json解析

    对于本地JSON文件解析,首先我们需要读取JSON数据。在Android中,这通常通过`AssetManager`类完成,因为JSON文件常存放在`assets`目录下。 ```java try { AssetManager assetManager = getAssets(); InputStream ...

    老罗android 解析json数据源码

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

    android中JSON数据解析

    在Android开发中,JSON...总的来说,Android中的JSON数据解析是通过理解JSON结构,结合`org.json`库或Gson库,以及适当的网络请求库来实现的。合理使用这些工具,能有效地处理和展示从服务器获取的JSON数据。

    Android之Json数据解析

    本文将深入探讨如何在Android中解析JSON数据,包括基本概念、解析方法以及实战示例。 首先,理解JSON的基本结构至关重要。JSON是一种基于文本的格式,由键值对组成,数据以键(key):值(value)的形式表示,值可以...

    android解析Json数据

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

    Android Studio解析JSON对象

    在Android开发中,Android Studio是首选的集成开发环境(IDE),它提供了丰富的...记住,实践是最好的老师,尝试创建一个简单的应用,从服务器获取JSON数据,并将其解析到相应的Java对象中,这将有助于巩固这些概念。

    android之JSON数据的构建

    以上就是Android中构建和解析JSON数据的基本步骤。在实际开发中,你可能还需要处理更复杂的JSON结构,包括嵌套的对象和数组,以及使用不同的数据类型。同时,Android还提供了Gson库,它能直接将Java对象转换为JSON...

    android JSON解析放入ListView

    1. JSON基本结构:JSON数据由键值对组成,键用引号包围,值可以是字符串、数字、数组、对象等。例如: ```json { "name": "John", "age": 30, "city": "New York" } ``` 2. Android中的JSON解析库: - `org.json...

    android demo,json数据的处理,json字符串的发送和解析。

    这个“android demo”显然是一个展示如何在Android平台上处理JSON数据、发送JSON字符串以及进行JSON解析的示例项目。下面将详细阐述相关知识点。 一、JSON基础知识 1. JSON格式:JSON采用键值对的形式存储数据,键...

    Android解析Json数据的PPT和源码

    在Android开发中,JSON(JavaScript Object Notation)是...通过学习这个PPT和源码,开发者不仅可以掌握基本的JSON解析方法,还能了解到在Android环境中如何优雅地处理网络请求和数据解析,提升应用的性能和用户体验。

    android异步远程解析json数据绑定到listview上

    在Android开发中,将远程服务器返回的JSON数据异步解析并绑定到ListView是常见的操作,这一过程涉及到网络请求、数据解析、UI更新等多个关键环节。本文将深入探讨这些知识点。 首先,我们需要理解“异步”处理的...

    JS调用Android方法,向Android方法传递json数据

    本文将深入探讨如何使用JavaScript调用Android的方法,并传递JSON数据,以实现两者之间的高效通信。 首先,我们需要了解`Android WebView`。WebView是Android系统提供的一种组件,它能够加载并显示网页内容,就像是...

    android采用json解析数据的实例

    本实例将详细讲解如何在Android应用中解析JSON数据,主要涉及以下几个关键知识点: 1. JSON基础知识 JSON是一种轻量级的数据交换格式,其结构基于JavaScript语言的对象表示法,但JSON是独立于语言的。基本语法包括...

Global site tag (gtag.js) - Google Analytics