获取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);
}
}