什么是 Json?
JSON(JvaScript Object Notation)(官网网站:http://www.json.org/)是 一种轻量级的数据交换格式。
易于人阅读和编写。同时也易于机器解析和生成。它基于 JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999 的一个子集。
JSON 采用完全独立于语言的文本格式,但是也使用了类似于 C 语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使 JSON 成为理想的数据交换语言。
JSON 的两种结构
1.“名称/值”对的集合(A collection of name/value pairs)
不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表 (hash table),有键列表(keyed list),或者关联数组 (associative array)。
在 Java 语言中,我们可以将它理解成 HashMap。
对象是一个无序的"‘名称/值‘对"集合。一个对象以"{"(左括号)开始,"}"(右括号)结束。每个“名称”后跟一个":"(冒号);"‘名称/值‘ 对"之间使用","(逗号)分隔。
示例:var json = {"name":"Jack","age":90,"Marray":true};
2. 值的有序列表(An ordered list of values)
在大部分语言中,它被理解为数组(Array 或 List)。
数组是值(value)的有序集合。一个数组以"["(左中括号)开始,"]"(右中括号)结束。值之间使用","(逗号)分隔。
示例:var json = ["Jack","Rose","Tom",89,true,false];
Java中对json的操作的方式:org.json.jar
/** * 解析JSON */ public static void ParsingJSon() { String json = "{\"resultcode\":\"200\",\"reason\":\"成功的返回\",\"result\":{\"GD\":{\"province\":\"广东\",\"province_code\":\"GD\",\"citys\":[{" + "\"city_name\":\"梅州\",\"city_code\":\"GD_MEIZHOU\",\"abbr\":\"粤\"}," + "{\"city_name\":\"汕尾\",\"city_code\":\"GD_SHANWEI\",\"abbr\":\"粤\"}]}},\"error_code\":0}"; try { JSONObject jsonobject = new JSONObject(json); String resultcode = jsonobject.getString("resultcode"); JSONObject jsonone = jsonobject.getJSONObject("result"); JSONObject jsontwo = jsonone.getJSONObject("GD"); JSONArray jsonarray = jsontwo.getJSONArray("citys"); for (int i = 0; i < jsonarray.length(); i++) { JSONObject ject = jsonarray.getJSONObject(i); String s1 = ject.getString("city_name"); String s2 = ject.getString("city_code"); String s3 = ject.getString("abbr"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
/** * 构造JSON */ public static void ConstructingJSon() { JSONObject jsonFirst = new JSONObject(); JSONObject jsonSecond = new JSONObject(); JSONObject jsonThird = new JSONObject(); try { JSONArray citys = new JSONArray(); JSONObject cityone = new JSONObject(); JSONObject citytwo = new JSONObject(); cityone.put("city_name", "梅州"); cityone.put("city_code", "GD_MEIZHOU"); cityone.put("abbr", "粤"); citytwo.put("city_name", "汕尾"); citytwo.put("city_code", "GD_SHANWEI"); citytwo.put("abbr", "粤"); citys.put(cityone); citys.put(citytwo); jsonThird.put("province", "广东"); jsonThird.put("province_code", "GD"); jsonThird.put("citys", citys); jsonSecond.put("GD", jsonThird); jsonFirst.put("resultcode", "200"); jsonFirst.put("reason", "成功的返回"); jsonFirst.put("result", jsonSecond); jsonFirst.put("error_code", 0); } catch (Exception e) { e.printStackTrace(); } System.out.println(jsonFirst.toString()); }