获取json字符串中指定属性值的几种方法

  • Post author:
  • Post category:其他


获取json字符串中指定属性值的几种方法

一、引入阿里巴巴的json依赖包

<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>fastjson</artifactId>
  <version>1.2.9</version>
</dependency>
import com.alibaba.fastjson.JSONObject;

public class App{
    public static void main( String[] args ){

    	String params="{\"channelCode\":\"bbb\",\"accountNo\":\"121300000932\",\"message\":\"字符信息解密成功\",\"status\":\"1\"}";
    	
    	JSONObject pa=JSONObject.parseObject(params);

        //可以使用parseObject(params,Class<T> clazz)直接转换成需要的Bean
    	System.out.println(pa.getString("message"));
    }
}

代码:

1.parseObject详解

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

JSON.parseObject 的时候,会去填充名称相同的属性。对于Json字符串中没有,而model类有的属性,会为null;对于model类没有,而Json字符串有的属性,不做任何处理。

2.JSON.parseObject与JSONObject.parseObject的关系

JSON是一个抽象类,JSON中有一个静态方法parseObject(String text),将text解析为一个JSONObject对象并返回;JSONObject是一个继承自JSON的类,当调用JSONObject.parseObject(result)时,会直接调用父类的parseObject(String text),所以调用的是同一个方法。

3.JSON.parseArray

转换成对应的List集合


List<Student> parseArray = JSON.parseArray(studentJsonStr, Student.class);

二、引入net.sf.json-lib依赖包

<dependency>
  <groupId>net.sf.json-lib</groupId>
  <artifactId>json-lib</artifactId>
  <version>2.4</version>		 
  <classifier>jdk15</classifier>
</dependency>

代码:

import net.sf.json.JSONObject;
 
public class NetJson {
 
	public static void main(String[] args) {
 
    	String params="{\"channelCode\":\"ccy\",\"accountNo\":\"121300000932\",\"message\":\"字符信息解密成功\",\"status\":\"1\"}";
    	JSONObject pa=JSONObject.fromObject(params);
    	String accountNo=pa.getString("accountNo");
    	System.out.println(accountNo);
	}
 
}