一、JSON介绍
JSON(JavaScript Object Notation),类似于XML,是一种数据交换格式,比如JAVA产生了一个数据想要给JavaScript,则除了利用XML外,还可以利用JSON;
JSON有两种数据结构,
也就是说所有的JSON对象都是要以这些形式表示;
(1)Map,也称为对象;{....}
(2)Array;[......]
1.Map
简单的说就是Java中的Map,名称-值对的形式给出,名称和值之间用“:”隔开,两个Map之间用“,”隔开,一般表示形式如下:
{'key1':'value1','key2':'value2'}
2.Array
就是普通意义上的数组,一般形式如下:
['arr1','arr2','arr3'];
总结:
(1)JSON的数据结构只有两种;
(2)可以嵌套表示,比如Array中可以嵌套Object等;
(3)记住:Object是以{}表示,Array是以[ ]表示;
详细的介绍可以,上面有很直观的图形化的类型的解释。
二、在JAVA中使用JSON
其中,在接口的访问和数据的传输方面使用的比较多的是使用JSON对象来操作格式化数据:在服务器端采用JSON字符串来传递数据并在WEB前端或者Android客户端使用JSON来解析接收到的数据。
首先,在JAVA中使用JSON需要引入 org.json 包, 并在程序中引入相应的JSON类:
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
其次,在服务器端的Servlet类中,可以使用如下方法收集数据并生成相应的JSON字符串
-
//声明一个Hash对象并添加数据
-
Map params = new HashMap();
-
-
params.put("username", username);
-
params.put("user_json", user);
-
-
//声明JSONArray对象并输入JSON字符串
-
JSONArray array = JSONArray.fromObject(params);
-
put.println(array.toString());
在WEB前端可以通过javascript直接对JSON字符串进行解析,在Android客户端的话,需要使用JSON类来解析字符串:
-
//@description: 根据接收到的JSON字符串来解析字符串中所包含的数据和数据对象
-
-
//接收到的JSON字符串
-
String result = "[{\"username\": \"your name\", \"user_json\": {\"username\": \"your name\", \"nickname\": \"your nickname\"}}]";
-
-
//根据字符串生成JSON对象
-
JSONArray resultArray = new JSONArray(result);
-
JSONObject resultObj = resultArray.optJSONObject(0);
-
-
//获取数据项
-
String username = resultObj.getString("username");
-
-
//获取数据对象
-
JSONObject user = resultObj.getJSONObject("user_json");
-
String nickname = user.getString("nickname");
详细用法,参考官方的文档
Class Hierarchy
-
java.lang.Object
-
org.json.
-
org.json.
-
org.json.
-
org.json.
-
org.json.
-
org.json.
-
org.json.
-
org.json.
-
org.json.
-
java.lang.Throwable (implements java.io.Serializable)
-
org.json.
Interface Hierarchy
阅读(8410) | 评论(0) | 转发(2) |