首页 > 代码库 > Java中构造和解析JSON
Java中构造和解析JSON
什么是 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());
}
Java中构造和解析JSON