JSONObject与JSONArray的使用需要的jar包下载
https://mvnrepository.com/artifact/org.json/json/20180130
Files pom (5 KB) bundle (60 KB) View All 中点击bundle即可
1,JSONObject
json对象,就是一个键对应一个值,使用的是大括号{ },如:{key:value}
2,JSONArray
json数组,使用中括号[ ],只不过数组里面的项也是json键值对格式的
区别:
Json对象中添加的是键值对,JSONArray中添加的是Json对象
源码:
后台创建JSONObject方法一:直接put
response.setCharacterEncoding("utf-8");
JSONObject jsonObject =new JSONObject();
jsonObject.put("name", "爱你");
jsonObject.put("age", 12);
System.out.println(jsonObject);
System.out.println(jsonObject.isNull("name"));
System.out.println(jsonObject.isNull("xx"));
response.getWriter().write(jsonObject.toString());
输出:
{"name":"爱你","age":12}
false
true
后台创建JSONObject方法二:传入对象参数
也可以直接传入一个bean对象:
Student student1=new Student();
student1.setName("小明");
student1.setAge(12);
student1.setNumber(13);
System.out.println(student1.toString());
JSONObject jsonObject = new JSONObject(student1);
System.out.println(jsonObject);
response.getWriter().print(jsonObject);
输出:
JsonServlet.Student@42ad3781
{"number":13,"name":"小明","age":12}
后台创建JSONObject方法三:传入String参数
JSONObject jsonObject2 =
new JSONObject("{'name':'Tom','age':11}");
JSONObject jsonObject =
new JSONObject("{\"name\":\"爱你\",\"age\":12}");
后台创建JSONObject方法四:jsonArray.get获得
JSONArray jsonArray =
new JSONArray("[{'name':'11'},{'name':'13'}]");
JSONObject jsonObject = (JSONObject) jsonArray.get(0);
后台创建JSONArray方法一:传入String参数
JSONArray jsonArray =
new JSONArray("[{'name':'11'},{'name':'13'}]");
后台创建JSONArray方法二:put传入JSONObject
JSONObject jObject1 = new JSONObject();
jObject1.put("name", "12");
JSONObject jObject2 = new JSONObject();
jObject2.put("name", "13");
JSONArray jsonArray = new JSONArray();
jsonArray.put(jObject1);
jsonArray.put(jObject2);
输出:
[{"name":"12"},{"name":"13"}]
后台创建JSONArray方法二:传入list参数
List list=new ArrayList();
Student student1=new Student();
student1.setAge(12);
student1.setName("12");
Student student2=new Student();
student2.setAge(13);
student2.setName("12");
list.add(student1);
list.add(student2);
JSONArray jsonArray = new JSONArray(list);
System.out.println(jsonArray);
response.getWriter().print(jsonArray);
前台获取后台JSON方法:不管是JSONObject还是JSONArray
var json=JSON.parse(xmlHttp.responseText);
如果是JSONObject:
document.getElementById("mydiv").innerHTML=json.name;
或者
document.getElementById("mydiv").innerHTML=json["name"];
如果是JSONArray:
根据下标先得到JSONObject
document.getElementById("mydiv").innerHTML=json[0].name;