`
iaiai
  • 浏览: 2204078 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android中JSON数据的读写方法

 
阅读更多
直接上代码:

package com.iaiai;

import java.util.ArrayList;
import java.util.List;

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

import com.xmobileapp.pictureviewer.PictureShow.Folk;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

/**
 * 
 * <p>
 * Title: MainActivity.java
 * </p>
 * <p>
 * E-Mail: 176291935@qq.com
 * </p>
 * <p>
 * QQ: 176291935
 * </p>
 * <p>
 * Http: iaiai.iteye.com
 * </p>
 * <p>
 * Create time: 2011-10-11
 * </p>
 * 
 * @author 丸子
 * @version 0.0.1
 */
public class MainActivity extends Activity {

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		String json = objectToJson();
		Log.i("************json", json);
		try {
			ArrayList<Folk> list = jsonToObject((new JSONObject(json))
					.getJSONArray("object"));
			Log.i("************", list.get(0).getName());
			Log.i("************", list.get(1).getName());
			Log.i("************", list.get(2).getName());
			Log.i("************", list.get(0).getList().get(0).getName());
			Log.i("************", list.get(0).getList().get(0).getList().get(0)
					.getName());
		} catch (JSONException e) {
			e.printStackTrace();
		}
	}

	public ArrayList<Folk> jsonToObject(JSONArray jsonArray) {
		ArrayList<Folk> folks = new ArrayList<Folk>();
		try {
			for (int i = 0; i < jsonArray.length(); i++) {
				JSONObject json = jsonArray.getJSONObject(i);
				Folk folk = new Folk();
				folk.setName(json.optString("name"));
				folk.setAge(json.optString("age"));
				folk.setCareer(json.optString("career"));
				folk.setSalary(json.optInt("salary"));
				folk.setSex(json.optString("sex").equals("male") ? true : false);
				if (json.optString("list") != null
						&& json.optString("list").length() > 0) {
					folk.setList(jsonToObject(new JSONArray(json
							.optString("list"))));
				}
				folks.add(folk);
			}
		} catch (JSONException e) {
			e.printStackTrace();
		}
		return folks;
	}

	public String objectToJson() {
		List<Folk> fsk = new ArrayList<Folk>();
		Folk f2 = new Folk();
		f2.setAge("30岁");
		f2.setName("比尔");
		f2.setSex(false);
		fsk.add(f2);

		List<Folk> fs = new ArrayList<Folk>();
		Folk f1 = new Folk();
		f1.setAge("20岁");
		f1.setName("赵六");
		f1.setSex(true);
		f1.setList(fsk);
		fs.add(f1);

		String jsonData = null;
		List<Folk> folks = new ArrayList<Folk>();
		Folk f = new Folk();
		f.setAge("10岁");
		f.setName("张三");
		f.setSex(true);
		f.setList(fs);
		folks.add(f);
		f = new Folk();
		f.setAge("11岁");
		f.setName("李四");
		f.setSex(false);
		folks.add(f);
		f = new Folk();
		f.setAge("12岁");
		f.setName("王五");
		f.setSex(false);
		folks.add(f);

		try {
			return new JSONStringer().object().key("object")
					.value(objectToJson(folks)).endObject().toString();
		} catch (JSONException e) {
			return null;
		}
	}

	private JSONArray objectToJson(List<Folk> folks) {
		JSONArray array = new JSONArray();
		try {
			StringBuilder builder = new StringBuilder();
			ArrayList<String> folksData = new ArrayList<String>();
			for (int i = 0; i < folks.size(); i++) {
				Folk folk = folks.get(i);
				JSONObject jsonObject = new JSONObject();
				jsonObject.put("name", folk.getName());
				jsonObject.put("sex", folk.isSex() ? "male" : "female");
				jsonObject.put("age", folk.getAge());
				jsonObject.put("career", folk.getCareer());
				jsonObject.put("salary", folk.getSalary());
				if (folk.getList() != null && folk.getList().size() > 0) {
					jsonObject.put("list", objectToJson(folk.getList()));
				}
				folksData.add(jsonObject.toString());
				array.put(jsonObject);
			}
		} catch (JSONException e) {
			e.printStackTrace();
		}
		return array;
	}

	public class Folk {
		String name;
		String career;
		String age;
		int salary;
		boolean sex;

		List<Folk> list;

		public List<Folk> getList() {
			return list;
		}

		public void setList(List<Folk> list) {
			this.list = list;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

		public String getCareer() {
			return career;
		}

		public void setCareer(String career) {
			this.career = career;
		}

		public String getAge() {
			return age;
		}

		public void setAge(String age) {
			this.age = age;
		}

		public int getSalary() {
			return salary;
		}

		public void setSalary(int salary) {
			this.salary = salary;
		}

		public boolean isSex() {
			return sex;
		}

		public void setSex(boolean sex) {
			this.sex = sex;
		}
	}

}


运行结果:
  • 大小: 15.5 KB
分享到:
评论

相关推荐

    【Android】JSON数据的读写方法

    本篇文章将深入探讨Android环境下JSON数据的读写方法。 一、JSON数据格式 JSON数据格式基于JavaScript语法,但独立于语言,具有以下基本结构: 1. 对象(Object):以花括号 `{}` 包裹,键值对以逗号分隔,键(Key...

    android中JSON数据的读写方法

    总之,JSON数据的读写是Android开发中的核心技能之一。熟练掌握各种解析和生成方法,结合适当的工具库,可以极大地提升开发效率和应用质量。通过不断实践和学习,开发者可以更好地应对复杂的数据交互需求。

    android JSON数据的读写方法

    总结,Android中处理JSON数据是开发者必备技能之一,通过理解JSON的基本结构,合理选择解析库,以及掌握读写和UI结合的方法,能够高效地实现数据的交换和显示。在实际项目中,应注重性能优化和错误处理,确保应用的...

    老罗android 解析json数据源码

    在Android中,我们通常使用Gson库、org.json库或Jackson库来解析和生成JSON数据。 老罗在讲解中可能会涉及以下几个关键知识点: 1. **Gson库**:Google提供的一个强大的Java库,可以将Java对象转换为JSON字符串,...

    Android中通过json向MySql中读写数据的方法

    Android 中通过 JSON 向 MySQL 中读写数据的方法是指在 Android 应用程序中使用 JSON(JavaScript Object Notation)格式将数据上传到 MySQL 数据库中,并从 MySQL 数据库中读取数据。这种方法可以实现 Android 应用...

    android JSON数据的读写方法 互相转化

    JSON数据的读写方法_jsontoobject obje to json JsonTest.rar )JSON数据的读写方法_jsontoobject obje to json JsonTest.rar )

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

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

    android demo,json数据格式的案例的应用

    本示例是关于如何在Android应用中解析和使用JSON数据的一个实战演示。让我们深入探讨一下这个"android demo,json数据格式的案例的应用"。 首先,JSON是一种轻量级、易于人读写且易于机器解析的格式,它基于...

    Android利用Json来进行网络数据传输

    在Android系统中,自3.0版本开始,SDK内置了Json相关的类,如`org.json`包下的`JSONObject`和`JSONArray`,可以方便地进行Json数据的创建、解析和操作。 然而,对于Android 3.0之前的版本,或者开发者需要更高级的...

    android 利用socket 发送Json数据demo

    在Android开发中,利用Socket发送Json数据是一种常见的网络通信方式,尤其在移动应用与服务器进行实时交互时。本文将深入探讨如何在Android中实现这一功能,包括Json数据格式的使用、Socket通信的基本原理以及实际的...

    android简析json数据

    本文将简析Android中处理JSON数据的几种方法,为Android开发者提供一些实用技巧。 首先,理解JSON的基本结构是至关重要的。JSON是一种轻量级的数据交换格式,它基于JavaScript的一个子集,采用完全独立于语言的文本...

    Android实现读写JSON数据的方法

    总结来说,Android中读写JSON数据涉及以下几个步骤: 1. 获取JSON字符串,可以来自网络请求、本地文件或其他数据源。 2. 使用`org.json`库解析JSON字符串为`JSONObject`或`JSONArray`对象。 3. 通过对象的getter...

    android使用JSON进行网络数据交换(服务端、客户端)的实现.rar

    总结,这个压缩包的实现可能涵盖了Android客户端使用Retrofit发送网络请求、解析JSON数据,以及服务器端处理JSON请求并返回的过程。在实际项目中,还需要考虑安全性、性能优化和错误处理等多方面因素。

    android使用JSON进行网络数据交换(服务端、客户端)的实现_网页交互.zip

    在Android开发中,网络数据交换是常见的需求,而JSON(JavaScript Object Notation)因其轻量级、易读写和高效的特点,成为Android与服务器之间数据交换的首选格式。本教程将详细讲解如何在Android客户端和服务端...

    Android通过json向MySQL中读写数据的方法详解【写入篇】

    本文实例讲述了Android通过json向MySQL中写入数据的方法。分享给大家供大家参考,具体如下: 先说一下如何通过json将Android程序中的数据上传到MySQL中: 首先定义一个类JSONParser.Java类,将json上传数据的方法...

    Android客户端与服务器端的json数据交互(内含大量知识点)

    在Android中,我们通常使用`org.json`库或Gson库来处理JSON数据。`org.json`库提供了基本的解析和生成JSON的功能,而Gson库则更强大,可以直接将Java对象转换为JSON字符串,反之亦然。 1. **发送JSON请求**:客户端...

    Android通过json向MySQL中读写数据的方法详解【读取篇】

    3. Android端接收到JSON数据后,使用JSON解析库(如Gson或org.json)解析JSON字符串,提取所需信息。 4. 使用提取的数据执行相应的业务逻辑,例如更新UI或存储到本地数据库。 在实际项目中,为了提高用户体验和安全...

    Android json解析数据

    JSON格式简洁、易于读写,并且被大多数编程语言支持,包括Java,因此在Android中处理JSON数据是开发者必备的技能。 **一、JSON基本结构** JSON有两种主要数据类型:对象和数组。对象是键值对的集合,用花括号{}...

    android json 解析jar

    Android JSON解析jar指的是在Android项目中用于解析JSON数据的Java库,通常以.jar文件形式提供。 本主题主要关注的是`gson`库,这是一个由Google提供的强大JSON库,它允许将Java对象转换为JSON字符串,以及将JSON...

Global site tag (gtag.js) - Google Analytics