json(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。
JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,用于提升网络传输速率。
json简单点儿说就是JavaScript的对象和数组
现在看了上面三行,觉得当时对json的理解太浅了。以前面试,被问到你知道json吗?我觉得提问人小看人心想不就是一个数组里面装着几个对象嘛! 直到遇见问卷这类问题才发现原来json作用如此之大 也更深层次了解。
为什么说json是传送数据的神器,提问者的意图有看看面试者有没有面向对象思想。
组长让我向数据库中录入一套问卷,供前端调用处理。 第一反应:问卷存成一个String放在问卷表的一个字段中, 第二次优化:表中有问卷id与名称。其余的就剩下问题了
打算每个题目用&@@&分隔;也确实这么做了,给了前端,前端哭了。 java是面向对象的,把问卷转化成一个json串传过去。于是开始构造json这个时候便接触到了
JSONObject与JSONArray两个类都继承Object
1.Map<String, Object> outJson1_1 = new HashMap<String, Object>();
System.out.println("Map<String, Object>"+":"+outJson1_1);
输出: Map<String, Object>:{}
2.JSONObject jso1=new JSONObject();
jso1.put("score", 4);
jso1.put("options", "无明显不适");
jso1.put("id", 1.1);
System.out.println("JSONObject"+":"+jso1);
输出: JSONObject:{"score":4,"options":"无明显不适","id":1.1}
3.JSONObject jso1=new JSONObject();
JSONObject jso2=new JSONObject();
JSONArray array4=new JSONArray();
jso1.put("score", 4);
jso1.put("options", "无明显不适");
jso1.put("id", 1.1);
array4.add(jso1);
jso2.put("score", 2);
jso2.put("options", "时常疲倦不堪");
jso2.put("id", 1.2);
array4.add(jso2);
System.out.println("JSONArray"+":"+array4);
输出: JSONArray:[{"score":4,"options":"无明显不适","id":1.1},{"score":2,"options":"时常疲倦不堪","id":1.2}]
4.Map<String, Object> outJson1_1 = new HashMap<String, Object>();
outJson1_1.put("score", 4);
outJson1_1.put("options", "无明显不适");
outJson1_1.put("id", 1.1);
System.out.println("Map<String, Object>"+":"+outJson1_1);
输出: Map<String, Object>:{score=4, options=无明显不适, id=1.1}
5.JSONArray array1=new JSONArray();
Map<String, Object> outJson1_1 = new HashMap<String, Object>();
Map<String, Object> outJson1_2 = new HashMap<String, Object>();
outJson1_1.put("score", 4);
outJson1_1.put("options", "无明显不适");
outJson1_1.put("id", 1.1);
array1.add(outJson1_1);
outJson1_2.put("score", 2);
outJson1_2.put("options", "时常疲倦不堪");
outJson1_2.put("id", 1.2);
array1.add(outJson1_2);
System.out.println("array1"+":"+array1);
输出: array1:[{"score":4,"options":"无明显不适","id":1.1},{"score":2,"options":"时常疲倦不堪","id":1.2}]
JSONObject jSONArray = JSONObject.fromObject(outJson);
System.out.println("jSONArray"+":"+jSONArray);
out.write(jSONArray.toString());
很容易理解,如果是数组就用
JSONArray array1=new JSONArray();
如果是对象就用
JSONObject jso1=new JSONObject();
这样便可以随意构造自己想要的格式。以上输出可以看出
JSONObject jso1=new JSONObject();与 Map<String, Object> outJson1_1 = new HashMap<String, Object>();
得到的结果相同,应该存在快慢的区别吧.
以上是构建json串返回给前端,给他一套问卷,那么用户做过之后他又要返回给我一套用户做过的json串下回分析解析他传过来的json串。