首先我们需要导入JSON对象所依赖的jar包
链接:http://pan.baidu.com/s/1cIHFWU 密码:uamg
我把jar包都放在云盘上,大家直接下载即可
创建一个JSONObject对象
JSONObject json = new JSONObject();
JSONObject 的使用方法类似于map, 使用key对值进行操作。
下面我们来看一下具体的使用方法
json.put("姓名","张三");
json.put("年龄","18");
json.put("学号","123456");
取出的方法直接用get即可
json.get("姓名");
json.get("年龄");
json.get("学号");
或者也可以直接用json.toString方法将json对象以字符串的方式打印出来。
System.out.println(json);
下面来看一下JSONArray的使用方法。
JSONArray 能以数组的方式储存对象。
JSONArray jsonarr = new JSONArray();
ArrayList<Integer> al = new ArrayList<Integer>(Arrays.asList(1,2,3,23,4,24,23,23,23,42,2));
//将arraylist对象转换为jsonarr
jsonarr = JSONArray.fromObject(al);
System.out.println(jsonarr);
/*output:
[1,2,3,23,4,24,23,23,23,42,2]*/
或者也可以直接使用add方法来添加元素。
需要注意的是,add接收一个Object 参数,因此如果往里面传入基本数据类型,实际传递进去的是一个基本数据类型的包装类的引用。
JSONArray json = new JSONArray();
json.add(1);
json.add(2);
json.add(3);
//调用json的toString方法
System.out.println(json);
/*output:
[1,2,3]
*/
事实上,json还有一个addAll方法可以将一个Connection 类型的容器传递进去。
下面再来看一JSONObject
JSONObject json = new JSONObject();
同时你也可以将一个map传递进去。这里用了Hashmap
//创建一个map对象
HashMap<String,String> map = new HashMap<String,String>();
map.put("姓名", "张三");
map.put("年龄","18");
map.put("学号","10");
JSONObject json = new JSONObject();
json = JSONObject.fromObject(map);
System.out.println(json);
/*output:
{"姓名":"张三","学号":"10","年龄":"18"}
*/
以上我们大概知道了JSON的使用方法,如果作为一个servlet要给前端通信,我们可以用javascript向后端发送一个JSON对象,这个JSON对象用stringify 方法以字符串的方法传递过来,然后用java做解析。
其实解析方法直接用JSONObject.fromObject(String s);传递过来,返回的即使一个JSONObject对象。
//声明一个json字符串
String str = "{'姓名':'张三','年龄':'18'}";
//解析为json 对象
JSONObject json = parseJSON(str);
因此我们完全可以来操作这个json对象