转载:
http://www.j2bb.com/trac/discussion/27/1140
JOSN的定义:
一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。 – Json.org
JOSN的结构:
* Name/Value Pairs,类似所熟知的Keyed list、 Hash table、Disctionary和Associative array。在Android平台中同时存在另外一个类 “Bundle“,某种程度上具有相似的行为。org.json.JSONObject
* Array,一组有序的数据列表。org.json.JSONArray
在Android中包含四个与JSON相关的类和一个Exceptions:
* JSONArray
* JSONObject
* JSONStringer
* JSONTokener
* JSONException
JSONObject:
这是系统中有关JSON定义的基本单元,其包含一对儿(Key/Value)数值。它对外部(External:应用toString()方法输出的数值)调用的响应体现为一个标准的字符串(例如:{"JSON": "Hello, World"},最外被大括号包裹,其中的Key和Value被冒号":"分隔)。其对于内部(Internal)行为的操作格式略微,例如:初始化一个 JSONObject实例,引用内部的put()方法添加数值:new JSONObject().put("JSON", "Hello, World!"),在Key和Value之间是以逗号","分隔。
Value的类型包括:Boolean、JSONArray、JSONObject、Number、String或者默认值JSONObject.NULL object。
有两个不同的取值方法:
* get(): 在确定数值存在的条件下使用,否则当无法检索到相关Key时,将会抛出一个Exception信息。
* opt(): 这个方法相对比较灵活,当无法获取所指定数值时,将会返回一个默认数值,并不会抛出异常。
JSONArray:
它代表一组有序的数值。将其转换为String输出(toString)所表现的形式是用方 括号包裹,数值以逗号”,”分隔(例如:[value1,value2,value3],大家可以亲自利用简短的代码更加直观的了解其格式)。这个类的内 部同样具有查询行为,get()和opt()两种方法都可以通过index索引返回指定的数值,put()方法用来添加或者替换数值。
同样这个类的value类型可以包括:Boolean、JSONArray、JSONObject、Number、String或者默认值JSONObject.NULL object。
JSONStringer:
根据官方的解释,这个类可以帮助快速和便捷的创建JSON text。其最大的优点在于可以减少由于格式的错误导致程序异常,引用这个类可以自动严格按照JSON语法规则(syntax rules)创建JSON text。每个JSONStringer实体只能对应创建一个JSON text。
根据下边的实例来了解其它相关信息:
1 string myString =newJSONStringer().object()
2 .key("AR").value("www.Androidres.com!")
3 .endObject()
4 .toString();
结果是一组标准格式的JSON text:{“AR”:”www.Androidres.com!”}
其中的.object()和.endObject()必须同时使用,是为了按照Object标准给数值添加边界。同样,针对数组也有一组标准的方法来生成边界.array()和.endArray()。
JSONTokener:
这个是系统为JSONObject和JSONArray构造器解析JSON source string的类,它可以从source string中提取数值信息。
JSONException:
是JSON.org类抛出的异常信息。
下面引用一个完整的应用实例 (来自:androidsnippets.org)
01 publicstaticJSONObject getJSON(Map map) {
02 Iterator iter = map.entrySet().iterator();
03 JSONObject holder =newJSONObject();
04
05 while(iter.hasNext()) {
06 Map.Entry pairs = (Map.Entry) iter.next();
07 String key = (String) pairs.getKey();
08 Map m = (Map) pairs.getValue();
09 JSONObject data =newJSONObject();
10
11 try{
12 Iterator iter2 = m.entrySet().iterator();
13 while(iter2.hasNext()) {
14 Map.Entry pairs2 = (Map.Entry) iter2.next();
15 data.put((String) pairs2.getKey(), (String) pairs2.getValue());
16 }
17 holder.put(key, data);
18 }catch(JSONException e) {
19 Log.e("Transforming","There was an error packaging JSON",e);
20 }
21 }
22
23 returnholder;
24 }
分享到:
相关推荐
这个“【Android】JSON应用”主题主要涵盖如何在Android应用程序中使用JSON进行数据的序列化和反序列化。 一、JSON基本结构 JSON主要由两种数据结构组成: 1. 对象(Object):以大括号 `{}` 包裹,内部由一系列...
在Android应用开发中,有时我们需要从本地存储的JSON文件中读取数据,这通常涉及到文件I/O操作和字符编码处理。以下将详细讲解如何在Android中读取本地JSON文件,并解决可能出现的显示乱码问题。 1. **读取本地JSON...
在现代的移动应用开发中,JavaScript与原生平台之间的交互变得越来越常见,特别是在使用Android的WebView组件时。本文将深入探讨如何使用JavaScript调用Android的方法,并传递JSON数据,以实现两者之间的高效通信。 ...
Android 中通过 JSON 向 MySQL 中读写数据的方法可以实现 Android 应用程序与 MySQL 数据库之间的数据交互,实现数据的上传和读取。 相关知识点: * JSON(JavaScript Object Notation):一种轻量级的数据交换...
"android-json-rpc"正是这样一款专为Android平台设计的JSON-RPC库,它简化了开发者在Android应用程序中执行JSON-RPC服务调用的过程。 该库的核心特性包括: 1. **简单易用的API**:android-json-rpc提供了一个直观...
在Android开发中,HttpClient是一个重要的库,用于执行HTTP请求,获取网络上的...这些技能对于任何需要与服务器交互的Android应用都是必不可少的。学习和理解这些知识点,开发者可以更高效地构建功能丰富的移动应用。
在Android开发中,数据交换是不可或缺的一环,而JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,因其简洁、易读、易解析的特性,被广泛应用于客户端与服务器之间的数据传输。"org.json" 是一个...
在Android开发中,JSON(JavaScript Object Notation)是一种常用的数据交换格式,因其轻量级、易读易写的特点,被广泛应用于服务器与客户端之间的数据通信。本教程将深入讲解如何在Android环境中构建JSON数据。 ...
在Android开发中,为了提升应用中的动画效果和性能,开发者经常使用Adobe After Effects(简称AE)来设计复杂的视觉效果,并将其导出为JSON文件。这种做法可以借助Lottie-Android库,让Android应用能够轻松地读取并...
总之,在Android中解析JSON数据是应用程序与服务器交互的重要一环。熟练掌握Gson库和org.json库的使用,能够帮助开发者更高效地处理网络数据,提升应用性能。通过不断实践,你可以更加灵活地运用这些工具,解决各种...
本示例是关于如何在Android应用中解析和使用JSON数据的一个实战演示。让我们深入探讨一下这个"android demo,json数据格式的案例的应用"。 首先,JSON是一种轻量级、易于人读写且易于机器解析的格式,它基于...
在Android开发中,与JSON相关的类主要包括: 1. **`JSONObject`**:表示一个JSON对象,即一系列无序的键值对。支持`put()`和`get()`等方法来设置和获取键值对。 - **初始化示例**:`new JSONObject().put("name", ...
在Android开发中,Android Studio是首选的集成开发环境(IDE),它提供了丰富的工具和技术支持,使得开发者能够高效地构建移动应用。本主题聚焦于“Android Studio解析JSON对象”,这是一个非常关键且实用的技能,...
在Android应用开发中,我们经常需要处理来自网络API的数据,这些数据通常是JSON格式。JSONViewer插件提供了直观且用户友好的界面,帮助开发者快速解析、浏览和编辑JSON对象。 该插件的主要功能包括: 1. **实时...
由于其简洁和高效,JSON已经成为网络上最常用的数据交换格式之一,尤其在移动应用开发中,如Android。这篇博客将深入探讨在Android中如何使用JSON进行数据解析和序列化。 首先,我们要了解JSON的基本结构。JSON对象...
在Android应用开发中,处理JSON数据是常见的任务。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其简洁和易于人阅读及编写的特点,被广泛用于服务器向客户端传输数据。本文将深入探讨如何在...
在Android开发中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于应用程序与服务器之间的数据传输。这个“android demo”显然是一个展示如何在Android平台上处理JSON数据、发送JSON字符串...
在Java和Android开发中,处理JSON数据是常见的任务,这涉及到JSON的序列化与反序列化,以及格式化显示。"JsonFormat"在这里指的是一款本地工具,用于帮助开发者更方便地对JSON数据进行格式化,使其更易读。 在...
在Android开发中,JSON(JavaScript Object Notation)是一种常用的数据交换格式,因其简洁、易读、易编写的特点,被广泛应用于服务器与客户端之间的数据传输。本篇将详细讲解如何在Android应用中解析JSON数据,主要...
当需要将Android应用中的数据列表发送到服务器或者从服务器获取数据时,通常需要将List对象转换为JSON字符串。本篇文章将深入探讨如何在Android中实现一个将集合List转化为JSON字符串的工具类,以及在联网调接口时...