数据表示形式上的区别
JSONObject
json对象,一个键对应一个值,JSONObject的数据是使用{ }来表示的
例:
{
"id" : "1",
"name" : "小帅",
"age" : "18"
}
JSONArray
json数组,数据是是由JSONObject构成的数组,用 [ { } , { } , ...... , { } ] 来表示,只不过数组里面的项也是json键值对格式的
例:
[
{
"id" : "1",
"name" : "小帅",
"age" : "18",
} ,
{
"id" : "2",
"name" : "小美"
"age" : "19"
}
]
使用场景上的区别
如果想通过键值对的形式获取数据,使用JSONObject;
如果后台查询的是某个bean的list集合向前端页面传递,使用JSONArray。
创建方法上的区别
JSONObjest
方法一:
JSONObject jsonObject = new JSONObject();
//JSONObject对象中添加键值对
jsonObject.put("id", "3");
jsonObject.put("name", "小王");
jsonObject.put("age", "20");
System.out.println("jsonObject1:" + jsonObject);
方法二:
HashMap hashMap = new HashMap();
hashMap.put("id", "3");
hashMap.put("name", "小王");
hashMap.put("age", "20");
System.out.println("jsonObject2:" + JSONObject.fromObject(hashMap));
JSONArray
方法一:
JSONArray jsonArray = new JSONArray();
//将JSONObject对象添加到Json数组中
jsonArray.add(0, "4");
jsonArray.add(1, "小张");
jsonArray.add(2, "21");
System.out.println("jsonArray1:" + jsonArray);
方法二:
ArrayList arrayList = new ArrayList();
arrayList.add("4");
arrayList.add("小张");
arrayList.add("21");
System.out.println("jsonArray2:" + JSONArray.fromObject(arrayList));
获取方式上的区别
从字符串String获得JSONObject对象和JSONArray对象
JSONObject jsonObject = new JSONObject (String str);
JSONArray jsonArray = new JSONArray(String str ) ;
获取JSONObject中值:
String name = jsonObject.getString("name");
获取JSONArray中的值:
String name = arrayList.getString("1");
从JSONArray中获得JSONObject对象:
JSONObject jsonObject = (JSONObject)jsonArray.get(i);
JSONObject jsonObject = jsonArray.getJSONObject(i) ;
获取JSON内的数据:
int jid= jsonObject.getInt ( "id" ) ; // 这里的jid得到的数据就是123.
String jcourse=jsonObject.getString( " courseID") ; // 这里的jcourse得到的数据就是huangt-test.
Strirng jcourse = jsonObject.get("courseID").toString();