Java可以这样处理json,你还不知道吗?
2021/6/3 22:24:39
本文主要是介绍Java可以这样处理json,你还不知道吗?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
今天要说的是JSONObject和JSONArray这两个类,这两个类可以很方便的将json格式的字符串,map或者list转换为json,首先介绍下这两个类。
JSONObject是json对象,就是一个键对应一个值,因为是对象,所以使用的是{}花括号,如:{name:zhangsan};
JSONArray是json数组,因为是数组,所以使用的是[]中括号,数组里面的项也是json键值对格式的。
json对象添加的是键值对,JSONArray中是json对象。
public static void main(String[] args) {
JSONObject jsonObject=new JSONObject();
JSONArray jsonArr=new JSONArray();
jsonObject.put("name", "zhangsan");
jsonArr.add(jsonObject);
System.out.println(jsonObject);
System.out.println(jsonArr);
}
运行结果:
运行结果
我们可以将map转为json对象或者json数组,代码如下:
public static void main(String[] args) {
Map
paramMap.put("name", "zhangsan");
JSONObject jsonObject = JSONObject.fromObject(paramMap);
JSONArray jsonArr = JSONArray.fromObject(paramMap);
System.out.println(jsonObject);
System.out.println(jsonArr);
}
运行结果:
运行结果
json格式字符串转json对象或者json数组,代码如下:
public static void main(String[] args) {
String jsonStr="{name:'zhangsan',age:'18'}";
String jsonArrStr="[{name:'zhangsan',age:'18'}]";
JSONObject jsonObject = JSONObject.fromObject(jsonStr);
JSONArray jsonArr = JSONArray.fromObject(jsonArrStr);
System.out.println(jsonObject);
System.out.println(jsonArrStr);
}
运行结果:
运行结果
注意:这里的字符串键所对应的值一样要有单引号或者双引号,否则会报错,双引号要转义,这里为了方便的加单引 号,键的话加不加单双引号都行。
List转JSONArray,代码如下:
先定义一个Student类:
public class Student {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
main方法:
public static void main(String[] args) {
Student student=new Student();
student.setName("zhangsan");
student.setAge(18);
List
list.add(student);
JSONArray jsonArr = JSONArray.fromObject(list);
System.out.println(jsonArr);
}
运行结果:
运行结果
List的泛型是Map道理也是一样的。
那么,问题来了,日常开发的并不单单满足于这些,我们还要取值,下面来看看怎么取值。
public static void main(String[] args) {
Map
paramMap.put("name", "zhangsan");
paramMap.put("age", 18);
List<Map
list.add(paramMap);
JSONArray jsonArr = JSONArray.fromObject(list);
JSONObject jsonObject = JSONObject.fromObject(paramMap);
//以下两种方式都能通过类型去获取值,这里只要是获取String类型
//第一种取值方法(JSONArray只能通过索引json对象)
String jsonStr = jsonArr.getString(0);
//第二种取值方法
Object obj = jsonArr.optString(0);
System.out.println("jsonArr.getString="+jsonStr);
System.out.println("jsonArr.optString="+obj);
//jsonObject可以通过key取值
String nameGet = jsonObject.getString("name");
String nameOpt = jsonObject.optString("name");
System.out.println("jsonObject.getString="+nameGet);
System.out.println("jsonObject.optString="+nameOpt);
}
运行结果:
顺便提一下,JSONObject和JSONArray这两个类在这里都是net.sf.json包下的,阿里巴巴也有JSONObject和JSONArray这两个类,有兴趣的读者可以去研究下。
最后感谢各位看官观看本篇文章,如果觉得文章还行的话可以点点关注,我会经常分享,我们共同进步。
这篇关于Java可以这样处理json,你还不知道吗?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25Java创意资料:新手入门的创意学习指南
- 2024-11-25JAVA对接阿里云智能语音服务资料详解:新手入门指南
- 2024-11-25Java对接阿里云智能语音服务资料详解
- 2024-11-25Java对接阿里云智能语音服务资料详解
- 2024-11-25JAVA副业资料:新手入门及初级提升指南
- 2024-11-25Java副业资料:入门到实践的全面指南
- 2024-11-25Springboot应用的多环境打包项目实战
- 2024-11-25SpringBoot应用的生产发布项目实战入门教程
- 2024-11-25Viite多环境配置项目实战:新手入门教程
- 2024-11-25Vite多环境配置项目实战入门教程