`
104zz
  • 浏览: 1507783 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

android 和java JSON详解与实例参考

阅读更多

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming LanguageStandard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

JSON建构于两种结构:

· 名称/对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object,纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。

· 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

· 这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能

JSON具有以下这些形式:

1、对象是一个无序的“‘名称/集合。一个对象以{(左括号)开始,}(右括号)结束。每个名称后跟一个:(冒号);“‘名称/’ 之间使用,(逗号)分隔。 

例如定义一个人的对象:{name:"xiaoming","sex":"male","age":18}

2、数组是值(value)的有序集合。一个数组以[(左中括号)开始,](右中括号)结束。值之间使用,(逗号)分隔。 

例如:[1,2,3,4,5] ["name","hello","world",4,5,6]

3、值(value)可以是双引号括起来的字符串(string)、数值(number)truefalse、 null、对象(object)或者数组(array)。这些结构可以嵌套。

例如:"welcome to china","2"

4、字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。 

JSON具有以下这些形式:(引号)、b(空格)、n(新行)、f(换页)、r(回车)、t(水平定位)、u(为Unicode字符增加4个数位)、\(反斜线符号)、/(正斜杠符号)。
字符串(string)与C或者Java的字符串非常相似。 

5

数值(number)也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节,空白可以加入到任何符号之间。 

以上摘自:http://www.json.org/json-zh.html

下面是一些常见的json数据的定义:

定义一个简单的对象:var user={ "Id" :1, "Name" : "Hubery" , "Age" :23, "Email" : "hubery@163.com" };

取出数据:user.id,user.Name...

对象里面包含对象:

{ "Id" :1, "Name" : "Hubery" , "Age" :23, "Email" : "hubery@163.com" ,"address":{"city":"changsha","street":"no2"}}

取出数据:user.Name,user.address.city

如果一个人有多个地址,我们可以用数组表示:

{"name":"tom","age":"13","address":[{"city":"changsha","street":"no2"},{"city":"beijing","street":"no5"}]}

取出数据:user.age,user.address[0].street

我们还可以用数组定义多个用户:

[{"name":"tom","age":"13","address":[{"city":"changsha","street":"no2"},{"city":"beijing","street":"no5"}]},

{"name":"tom","age":"13","address":[{"city":"changsha","street":"no2"},{"city":"beijing","street":"no5"}]},

{"name":"tom","age":"13","address":[{"city":"changsha","street":"no2"},{"city":"beijing","street":"no5"}]}]

取出数据:user[0].name,user[0].address[0].street

JSON解析:

java对象与json对象转换:

在网站上下载相应的jar包:

http://www.findjar.com/jar/net/sf/json-lib/json-lib/2.1/json-lib-2.1-jdk15.jar.html?all=true

java对象转为json对象:

导入json-lib-2.1-jdk15.jar  

JSONObject jsonObject = JSONObject.fromObject(java对象);

jsonObject .toString();
List转为json对象:

import org.json.JSONArray 如果是这种包:new JSONArray(list)    list就成jsonarray了。

import net.sf.json.JSONArray;如果是这种包:JSONArray.fromObject(list)  list就成jsonarray了。

 

案例代码:

public static void main(String[] args) {
		String jsonstr = "{\"name\":\"tom\",\"age\":\"13\",\"address\":[{\"city\":\"changsha\",\"street\":\"no2\"},{\"city\":\"beijing\",\"street\":\"no5\"}]}";
		try {
			JSONObject jsonObj = new JSONObject(jsonstr);
			//name,age的值是一个字符串所以可以直接获取
			String name = jsonObj.getString("name");
			System.out.println("name:"+name);
			String age = jsonObj.getString("age");
			System.out.println("age:"+age);
			//address的值是一个json数组所以我们要先获取json数组
			JSONArray addrArrays = jsonObj.getJSONArray("address");
			//addrArrays数组中又有两个JSONObject数据所以我们循环取出
			for(int i=0;i<addrArrays.length();i++){
				JSONObject addrJsonObj = addrArrays.getJSONObject(i);
				String city = addrJsonObj.getString("city");
				System.out.println("city"+(i+1)+":"+city);
				String street = addrJsonObj.getString("street");
				System.out.println("street"+(i+1)+":"+street);
			}
			
			
			
		} catch (JSONException e) {
			e.printStackTrace();
		}
	}
 
分享到:
评论
1 楼 youlingxifeng 2012-11-05  
我试了一下,不能实现,是要到什么包吗

相关推荐

    《Android核心技术与实例详解》所有源码

    《Android核心技术与实例详解》是一本深入探讨Android开发技术的专著,涵盖了Android开发的各个方面。这本书通过详尽的实例,旨在帮助读者掌握Android开发的核心技术,并提升实战能力。源码是学习过程中不可或缺的一...

    java-json.jar.zip

    1. 创建一个Java对象的实例,该对象的属性应与JSON对象的键相对应。 2. 使用`ObjectMapper`类的`readValue()`方法,传入JSON字符串和目标Java类型,即可将JSON转换为Java对象。 ```java import ...

    android核心技术与实例详解16-18章PPT

    本资料集合了"android核心技术与实例详解16-18章PPT"的内容,涵盖了Android系统中的重要知识点,旨在帮助开发者深入理解并熟练运用这些技术。以下是这三章内容的详细解析: 第16章:Android UI系统 在这一章中,...

    java反射实现javabean转json实例代码.docx

    ### Java反射机制实现JavaBean转JSON的详细解析 #### 一、引言 在现代软件开发过程中,数据格式转换是一项非常常见的任务。特别是在处理不同系统之间的数据交换时,JSON(JavaScript Object Notation)因其轻量级...

    android解析JSON数据详解借鉴.pdf

    在Android开发中,JSON(JavaScript Object Notation)是一种广泛用于数据交换的轻量级格式,因其易读性和编写便捷性而受到青睐。JSON结构主要由两种基本元素组成:Name/Value Pairs(键值对)和Array(数组)。键值...

    android json 解析jar

    3. **转换操作**:使用Gson实例进行JSON和Java对象的相互转换。 4. **异常处理**:处理可能出现的`JsonParseException`、`JsonSyntaxException`等异常。 5. **测试和调试**:使用JUnit或其他测试框架对转换过程...

    Android核心技术与实例详解源码和文档全

    《Android核心技术与实例详解》是一本深度探讨Android开发的书籍,涵盖了Android系统的核心技术以及实际应用中的各种实例。这本书的源码和文档齐全,为学习者提供了丰富的实践资源,能够帮助开发者深入理解Android...

    Android核心技术与实例详解 课件PPT

    《Android核心技术与实例详解》是一份全面而深入的Android学习资料,主要涵盖了Android开发中的核心技术和实战案例。通过这份课件PPT,开发者可以系统地理解Android应用开发的关键点,并通过实例来提升自己的技能。 ...

    Android json数据解析详解及实例代码

    本文将深入探讨Android平台上的JSON数据解析,通过实例代码帮助开发者理解和掌握这一技能。 首先,最基本的JSON格式解析涉及将JSON字符串转化为JSONObject对象。假设我们有一个名为`strResult`的字符串,其中包含...

    Android开发应用实战详解

    通过《Android开发应用实战详解》,读者不仅能学习到理论知识,还能通过实例学习如何将这些知识应用于实际项目中,从而成为一名熟练的Android开发者。书中可能涵盖了上述所有知识点,并可能还深入到更高级的主题,如...

    Android应用开发详解 实例

    《Android应用开发详解 实例》是由郭宏志编写的,这本书深入浅出地探讨了Android应用开发的各种技术和实践。在Android开发的世界里,理解和掌握这些知识点对于任何想要在这个平台上构建高效、用户友好的应用程序的人...

    Android核心技术与实例详解

    "Android核心技术与实例详解"这一主题涵盖的内容广泛,旨在帮助初学者快速上手并提升进阶开发者的技术深度。本篇文章将详细阐述Android开发中的关键概念和技术,同时通过实例来加深理解。 1. **Android系统架构**:...

    Android核心技术与实例详解10-18章案例源码

    《Android核心技术与实例详解》是Android开发者学习的重要参考资料,涵盖了Android开发中的许多核心技术和实践案例。根据提供的章节信息,我们来深入探讨一下10-18章涉及的主要知识点。 第10章通常会讲解Android...

    《Android移动开发案例详解》

    《Android移动开发案例详解》是一本深度探讨Android应用开发的实战型书籍,旨在通过一系列具体的实例,帮助读者掌握Android开发的核心技术与最佳实践。书中的每个案例都精心设计,覆盖了从基础到高级的各种功能实现...

    AndroidJSON解析框架GSON

    **Android JSON解析框架GSON详解** 在Android应用开发中,数据交换经常采用JSON格式,因为它轻量级、易于阅读和编写,并且被广泛支持。为了高效地解析和生成JSON,Google提供了一个强大的库——GSON。GSON允许将...

    Android应用开发详解教材源码(上册)实例源码

    "Android应用开发详解教材源码(上册)实例源码"是一个针对初学者和进阶开发者精心编排的资料包,它包含了10个单元共计40多个实例,旨在帮助用户深入理解Android应用程序的构建过程。 首先,我们要了解Android应用...

    android 简明Socket通信实例

    本实例将介绍如何在Android平台上进行简单的Socket通信,包括数据的发送和接收,以及如何解析接收到的数据。同时,我们还会涉及到简单的用户界面(UI)布局。 首先,让我们理解什么是Socket。Socket是网络通信中的...

    《android网络开发与应用实战详解>光盘代码

    通过阅读《Android网络开发与应用实战详解》,开发者不仅可以掌握基本的网络请求技术,还能学习到高级的网络编程技巧,提高应用程序的稳定性和效率。光盘中的代码示例则是理论知识的最佳实践,可以帮助读者巩固所学...

    Android移动开发案例详解代码

    在Android移动开发领域,开发者需要掌握一系列技术和工具来创建功能丰富的应用程序。本资源"Android移动开发案例详解代码"提供了一套详细的实践教程,涵盖了多个关键的Android开发知识点。以下是根据标题和描述,...

    Android编程之json解析实例详解

    在Android编程中,JSON(JavaScript Object Notation)是一种广泛使用的轻量级数据交换格式,因为它易于阅读和编写,并且在不同的编程语言之间具有良好的互操作性。在Android 2.3及以上版本中,Android SDK提供了`...

Global site tag (gtag.js) - Google Analytics