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

My Android成长之路(二)——【JSON】

阅读更多
    如果android客户端接收到的是JSON字符串,就需要解析之。
    android本身就集成了json的解析和拼装的方法 所以用起来就很方便。
import java.util.ArrayList;
import java.util.List;

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

public class ParseJson {
	/**
	 * 解析JSON字符串
	 * 注: 这个是只有一个Object
	 * @param jsontext 字符串
	 * @return 返回JSONObject
	 */
	public static JSONObject getJson(String jsontext)
	{
		JSONObject object = null;
		try {
			JSONArray entries = new JSONArray(jsontext);
			object =  entries.getJSONObject(0);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return object;
	}
	
	/**
	 * 解析JSON字符串
	 * 注:这个是多个JSONObject
	 * @param jsontext 字符串
	 * @return 返回JSONObject
	 */
	public static List<JSONObject> getJsons(String jsontext)
	{
		List<JSONObject> objs = new ArrayList<JSONObject>();
		try {
			JSONArray entries = new JSONArray(jsontext);
			for (int i = 0; i < entries.length(); i++) {
				JSONObject object = entries.getJSONObject(i);
				objs.add(object);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return objs;
	}
}


下面就测试下,为了演示下json的拼装 所以又如下代码:

public class FActivity extends Activity
{
    private TextView txtmain;
    
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.fmain);
        String s = "";
        
        txtmain = (TextView) findViewById(R.id.txtmain);

        JSONArray array = new JSONArray();
		
        //用android自带的方法拼装json字符串,Person为测试实体类
	List<Person> persons = new ArrayList<Person>();
	persons.add(new Person("zhuqiang", 24, false));
        //下面注释的就是适用于多个Person实体
        //persons.add(new Person("xiyaqiang", 28, true));
	//persons.add(new Person("sunhaibo", 23, false));
	//persons.add(new Person("meibaocai", 26, false));
	//persons.add(new Person("weiqiang", 29, true));
        for (Person bean : persons) 
	{
		// 单个用户JSON对象
		JSONObject obj = new JSONObject();
		try 
		{
			obj.put("name", bean.getName());
			obj.put("age", bean.getAge());
			obj.put("marriage", bean.isMarriage());
		} catch (Exception e) {
			e.printStackTrace();
		}
		array.put(obj);
	}

        //这个是只有一个Object
        //多个JSONObject ParseJson.getJsons(String jsontext)
        s = ParseJson.getJson(array.toString()).getString("name");

        txtmain.setText(s);

    }
}


     一般与HttpClient结合使用 因为服务器可以为Http方式返回的JSON字符串个客户端。
分享到:
评论

相关推荐

    Android应用源码之Myandroid002001.zip

    【Android应用源码解析——Myandroid002001.zip】 在移动开发领域,Android是最受欢迎的操作系统之一,开发者们常常需要通过分析源码来学习、改进或调试应用程序。"Myandroid002001.zip" 提供了一个Android应用的源...

    Android应用源码之MyApplication-IT计算机-毕业设计.zip

    在Android应用源码开发Demo——"MyApplication"中,我们可以深入理解Android开发的基本流程和关键技术。这个项目非常适合计算机科学专业的学生进行毕业设计学习,它涵盖了移动开发App的多个重要方面,包括用户界面...

    AndroidStudio插件GsonFormat之Json快速转换JavaBean教程

    Android Studio提供了一款强大的插件——GsonFormat,它极大地简化了这一过程。GsonFormat允许开发者快速地将JSON字符串转换为对应的JavaBean类,极大地提高了开发效率。 **GsonFormat插件安装** 安装GsonFormat...

    Android网络请求框架01

    本教程将重点介绍Android的网络请求框架——Volley,它是一个高效的、为Android设计的网络库,由Google开发并推荐使用。由于该版本的框架主要支持JSON数据的网络请求,我们将深入探讨如何使用Volley处理JSON数据。 ...

    Android 异步任务AsyncTask

    结合HTTP请求和JSON解析,你可以实现如标题所描述的功能——在Android应用中发送POST请求并获取JSON数据。不过,随着Android版本的更新和更多现代库的出现,如Retrofit和Coroutines,开发者现在有了更多选择来处理...

    MyApplication.zip

    本项目"我的应用(MyApplication.zip)"是基于Android Studio开发的一个物联网温度传输安卓小程序,它实现了从OneNet平台接收并展示温度数据的功能。下面将详细探讨这一开发过程中的关键技术点。 首先,我们要了解...

    my-android-portfolio:一个 android 应用程序展示了我将通过 Udacity 的 Android Developer Nanodegree 构建的项目

    首先,我们要理解这个项目的核心——创建一个Android应用程序,作为个人的投资组合,展示开发者在学习过程中的成果。这不仅锻炼了开发者的技术实力,也体现了他们的创新思维和项目管理能力。在这个项目中,开发者将...

    Android-使用Kotlin属性委托实现的基于文件的Key-Value持久化工具

    Kotlin提供了一种强大的特性——属性委托,这使得实现基于文件的Key-Value存储变得更加简单和优雅。本篇文章将深入探讨如何利用Kotlin的属性委托来构建一个轻量级的、文件为基础的Key-Value存储系统。 首先,我们...

    sqlc数据库操作

    SQLC是用于Go语言的SQL编译器,它允许开发者以类型安全的方式与数据库进行交互。...尽管在Android应用中直接使用SQLC可能需要一些额外工作,但其带来的好处——如减少错误和提高安全性——是值得的。

    安卓上传图片到阿里云 亲测可用

    本文将详细讲解如何实现这个过程,并提供一个实际可行的解决方案——基于`MyApplication`项目进行操作。 首先,我们需要理解的是,上传图片到阿里云涉及到的主要技术包括Android的网络请求库(如OkHttp或Retrofit)...

    自制智能问答小机器人小幕

    【自制智能问答小机器人小幕】项目旨在教你如何利用第三方API——图灵机器人,创建一个个性化的问答小机器人。这个项目对于初学者来说是极好的实践机会,它可以帮助你理解如何将API集成到你的应用程序中,同时提升你...

    myvideos:概念应用程序的离子演示证明

    它允许开发者使用Web技术创建原生的iOS、Android和Web应用,具有高度的可定制性和高性能。 【描述】提到"我的视频"是一个 Ionic 应用程序,这意味着它是用来展示或管理视频内容的。"实时应用程序可在"表明该应用...

    如何在edit保存修改的值

    4. **Android Room库**:对于使用SQLite数据库的操作,Android提供了一个高级抽象库——Room。它简化了数据库操作,提供了类型安全的API。使用Room,你需要定义一个实体类,包含EditText值的字段,然后创建一个DAO...

    SalesCar:dva + umi + TypeScript React Native App

    《构建基于dva、umi和TypeScript的React Native应用——以SalesCar为例》 在现代移动应用开发领域,React Native以其跨平台的特性受到了广大开发者们的喜爱。而在前端框架的选择上,dva与umi的结合提供了高效且强大...

Global site tag (gtag.js) - Google Analytics