JSON.parseObject与JSONObject.parseObject的区别&JSONObject和JSONArray的区别

JSON.parseObject(String str)与JSONObject.parseObject(String str)的区别

1.JSON和JSONObject

根据源码显示:JSON是一个抽象类,JSON中有一个静态方法parseObject(String text),将text解析为一个JSONObject对象并返回;
JSONObject是一个继承自JSON的类,当调用JSONObject.parseObject(result)时,会直接调用父类的parseObject(String text)。
所以两者没什么区别,一个是用父类去调用父类自己的静态的parseObject(String text),一个是用子类去调用父类的静态parseObject(String text),两者调的是同一个方法。

2.parseObject(String str)的作用

JSON.parseObject(String str)是将str转化为相应的JSONObject对象,其中str是“键值对”形式的json字符串,转化为JSONObject对象之后就可以使用其内置的方法,进行各种处理了。

public AlipayConfig(String payParam) {
   //判断传入的payParam值是否为空,为空则直接抛出异常,  
   //该函数的意思是传入的object必须不能为空。如果为空就抛出异常。
   Assert.notNull(payParam, "init AllinpayConfig config error"); 
   
   //JSON.parseObject(String str)是将str转化为相应的JSONObject对象,
   //其中str是“键值对”形式的json字符串,转化为JSONObject对象之后就可以使用其内置的方法,进行各种处理了。
   JSONObject object = JSONObject.parseObject(payParam);
   
   this.appId = object.getString("appid");
   this.key = object.getString("key");
   this.c = object.getString("c");
}

3.fastjson依赖

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
</dependency>

为什么要说fastjson,因为,JSON.parseObject(String str)和JSONObject.parseObject(String str)就是fastjson中的方法。

JSONObject和JSONArray的区别

1.JSONObject和JSONArray的数据表示形式

JSONObject的数据是用 { } 来表示的,例如:

{ "id" : "123", "courseID" : "huangt-test", "title" : "提交作业", "content" : null  }

而JSONArray,顾名思义是由JSONObject构成的数组,用 [ { } , { } , … , { } ] 来表示。 例如:

[ {  "id" : "123", "courseID" : "huangt-test", "title" : "提交作业" }  ,  
{  "content" : null, "beginTime" : 1398873600000  "endTime" } ]

表示了包含2个JSONObject的JSONArray。

可以看到一个很明显的区别,一个用的是 { } ,一个最外面用的是 [ ] ;

2.如何从字符串String获得JSONObject对象和JSONArray对象

 JSONObject  jsonObject  = new JSONObject ( String  str);
 JSONArray jsonArray = new JSONArray(String    str  ) ;

3.如何从JSONArray中获得JSONObject对象

大家可以把JSONArray当成一般的数组来对待,只是获取的数据内数据的方法不一样。

JSONObject   jsonObject = (JSONObject)jsonArray.get(i);
JSONObject   jsonObject =  jsonArray.getJSONObject(i) ;  

两者都可。第一种注意转换

4.获取JSON内的数据

int  jid = jsonObject.getInt ( "id" ) ;    //  这里的jid得到的数据就是123.
String  jcourse = jsonObject.getString( " courseID") ;   // 这里的jcourse得到的数据就是huangt-test.
Strirng jcourse = jsonObject.get("courseID").toString();

5.一般地 为键值对

eg:{  name:"xm", value:"张三"}
String jname = null;
if(jsonObject.get("name").equals("xm")){
  	jname=jsonObject.get("value").toString();
}
 

6.转换

 JSON.parse( str )    --> 把字符串转为JSON对象
 JSON.stringify( obj ) --> 把对象解析为字符串

(参考博文:
https://blog.csdn.net/chen3888015/article/details/102886468)

  • 10
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值