JSONObject和JSONArray区别及基本用法

这篇博客详细介绍了JSONObject和JSONArray在数据表示形式、使用场景、创建方法以及获取方式上的区别。JSONObject以键值对形式表示数据,适合通过键获取值;JSONArray是JSONObject的数组形式,适用于传递bean的list集合。创建方法包括多种,如直接构造或从字符串转换。在获取数据时,可以分别从JSONObject和JSONArray中提取所需信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据表示形式上的区别

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();

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值