官方网站建设的目标,开创集团与百度,国外建设短视频网站,东莞路桥总公司电话目录
1.使用的场景区别
2. 使用方法区别
3.获取方式不同
4. 解析JSON字符串
5.总结 1.使用的场景区别
想通过键值对的形式获取数据#xff0c;使用JSONObject。如果后台查询的是某个bean的list集合向前端页面传递#xff0c;使用JSONArray。
2. 使用方法区别 创建方法不…目录
1.使用的场景区别
2. 使用方法区别
3.获取方式不同
4. 解析JSON字符串
5.总结 1.使用的场景区别
想通过键值对的形式获取数据使用JSONObject。如果后台查询的是某个bean的list集合向前端页面传递使用JSONArray。
2. 使用方法区别 创建方法不同 JSONObject创建的方法
//创建JsonObject第一种方法
JSONObject jsonObject new JSONObject();
jsonObject.put(UserName, kobi);
jsonObject.put(age, 34);
jsonObject.put(workIn, ALI);
System.out.println(jsonObject1 jsonObject);//创建JsonObject第二种方法
HashMapString, String hashMap new HashMapString, String();
hashMap.put(UserName, ZHULI);
hashMap.put(age, 30);
hashMap.put(workIn, ALI);
System.out.println(jsonObject2 JSONObject.fromObject(hashMap));JSONArray创建的方法
//创建一个JsonArray方法1
JSONArray jsonArray new JSONArray();
jsonArray.add(0, kobi);
jsonArray.add(1, 34);
jsonArray.add(2, ALI);
System.out.println(jsonArray1 jsonArray);//创建JsonArray方法2
ArrayListString arrayList new ArrayListString();
arrayList.add(kobi);
arrayList.add(34);
arrayList.add(ALI);
System.out.println(jsonArray2 JSONArray.fromObject(arrayList));
3.获取方式不同
获取JSONObject中值String userName jsonObject.getString(UserName);获取JSONArray中的值String userName arrayList.getString(2);
package com.yunos.tv.video.resource.controller.web;import java.util.ArrayList;
import java.util.HashMap;import net.sf.json.JSONArray;
import net.sf.json.JSONObject;public class Test {public static void main(String[] args) {//JsonObject和JsonArray区别就是JsonObject是对象形式JsonArray是数组形式//创建JsonObject第一种方法JSONObject jsonObject new JSONObject();jsonObject.put(UserName, ZHULI);jsonObject.put(age, 30);jsonObject.put(workIn, ALI);System.out.println(jsonObject1 jsonObject);//创建JsonObject第二种方法HashMapString, String hashMap new HashMapString, String();hashMap.put(UserName, ZHULI);hashMap.put(age, 30);hashMap.put(workIn, ALI);System.out.println(jsonObject2 JSONObject.fromObject(hashMap));//创建一个JsonArray方法1JSONArray jsonArray new JSONArray();jsonArray.add(0, ZHULI);jsonArray.add(1, 30);jsonArray.add(2, ALI);System.out.println(jsonArray1 jsonArray);//创建JsonArray方法2ArrayListString arrayList new ArrayListString();arrayList.add(ZHULI);arrayList.add(30);arrayList.add(ALI);System.out.println(jsonArray2 JSONArray.fromObject(arrayList));//如果JSONArray解析一个HashMap则会将整个对象的放进一个数组的值中System.out.println(jsonArray FROM HASHMAP JSONArray.fromObject(hashMap));//组装一个复杂的JSONArrayJSONObject jsonObject2 new JSONObject();jsonObject2.put(UserName, ZHULI);jsonObject2.put(age, 30);jsonObject2.put(workIn, ALI);jsonObject2.element(Array, arrayList);System.out.println(jsonObject2 jsonObject2);}
}
输出结果:
jsonObject1{UserName:ZHULI,age:30,workIn:ALI}
jsonObject2{workIn:ALI,age:30,UserName:ZHULI}
jsonArray1[ZHULI,30,ALI]
jsonArray2[ZHULI,30,ALI]
jsonArray FROM HASHMAP[{workIn:ALI,age:30,UserName:ZHULI}]
jsonObject2{UserName:ZHULI,age:30,workIn:ALI,Array:[ZHULI,30,ALI]}
4. 解析JSON字符串
package com.yunos.tv.video.resource.controller.web;import net.sf.json.JSONArray;
import net.sf.json.JSONObject;public class Test {public static void main(String[] args) {String jsonString {\UserName\:\kobi\,\age\:\34\,\workIn\:\ALI\,\Array\:[\kobi\,\34\,\ALI\]};//将Json字符串转为java对象JSONObject obj JSONObject.fromObject(jsonString);//获取Object中的UserNameif (obj.has(UserName)) {System.out.println(UserName: obj.getString(UserName));}//获取ArrayObjectif (obj.has(Array)) {JSONArray transitListArray obj.getJSONArray(Array);for (int i 0; i transitListArray.size(); i) {System.out.print(Array: transitListArray.getString(i) );}}}
}
返回结果:
UserName:kobi
Array:kobi Array:34 Array:ALI
5.总结
(1).区别在于JSONObject是一个{}包裹起来的一个对象(Object)而JSONArray则是[]包裹起来的一个数组(Array)说白点就是一个是数组一个是对象或字符串
(2).JSON有两种结构对象和数组。
对象结构以”{”大括号开始以”}”大括号结束。中间部分由0或多个以””分隔的”key(关键字)/value(值)”对构成关键字和值之间以””分隔语法结构如代码。 {
1: 2,
4: 5
} 其中关键字是字符串而值可以是字符串数值true,false,null,对象或数组数组结构以”[”开始”]”结束。中间由0或多个以””分隔的值列表组成语法结构如代码。 [
{
1: 2,
4: 5
},
{
1: 2,
4: 5
}
] 借鉴:JSONObject和JSONArray区别及基本用法 - 简书