好记性不如烂笔头,一些常用方法还是经常会忘,写个笔记记录一下加深一下映像。
环境:jdk8 alibaba fastjson;
准备一个实体类 Stu ,所有笔记基于此类。
public class Stu {
private String name;
private int age;
//以下方法自行添加
//有参构造
//无参构造
//get set 方法
//toString 方法
}
- 对象转JSONObject
public static void main(String[] args) {
Stu stu = new Stu("张三",18);
//需要先将对象转成 JSON 字符串,再转成JSONObject。
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(stu));
System.out.println(jsonObject);//{"name":"张三","age":18}
}
- String 转 JSONObject
public static void main(String[] args) {
String str = "{\"name\":\"张三\",\"age\":18}";
//需要字符串为JSON字符串,不是JSON格式字符串无法转换
JSONObject jsonObject = JSONObject.parseObject(str);
System.out.println(jsonObject);//{"name":"张三","age":18}
}
- 循环操作JSONArray,将每个数据转换成JSONObject
public static void main(String[] args) {
JSONArray jsonArray = new JSONArray();
jsonArray.add(new Stu("张三",18));
jsonArray.add(new Stu("李四",17));
jsonArray.add(new Stu("王五",16));
for (int i = 0; i < jsonArray.size(); i++) {
//直接使用 JSONArray 的 getJSONObject 方法即可。
JSONObject jsonObject = jsonArray.getJSONObject(i);
System.out.println(jsonObject);//{"name":"张三","age":18}{"name":"李四","age":17}{"name":"王五","age":16}
}
}
- 将实体 对象装进了JSONArray,按原类型取出
public static void main(String[] args) {
JSONArray jsonArray = new JSONArray();
jsonArray.add(new Stu("张三",18));
jsonArray.add(new Stu("李四",17));
jsonArray.add(new Stu("王五",16));
for (int i = 0; i < jsonArray.size(); i++) {
//直接使用 JSONArray 的 getObject 方法即可,需设置需要转换的类 Stu.class
Stu stu = jsonArray.getObject(i,Stu.class);
System.out.println(JSON.toJSONString(stu));//{"name":"张三","age":18}{"name":"李四","age":17}{"name":"王五","age":16}
}
}
- JsonArray 转为List<实体>
public static void main(String[] args) {
JSONArray jsonArray = new JSONArray();
jsonArray.add(new Stu("张三",18));
jsonArray.add(new Stu("李四",17));
jsonArray.add(new Stu("王五",16));
//使用JSONArray 的 toJavaList 方法即可,需加上要转换的类,且是字段能匹配上的
List<Stu> stus = jsonArray.toJavaList(Stu.class);
System.out.println(stus);//[Stu{name='张三', age=18}, Stu{name='李四', age=17}, Stu{name='王五', age=16}]
}
- list 转jsonArray
public static void main(String[] args) {
List<Stu> list = new ArrayList<>();
list.add(new Stu("张三",18));
list.add(new Stu("李四",17));
list.add(new Stu("王五",16));
//先将集合转json 字符串,再转成jsonArray
JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(list));
System.out.println(jsonArray);//[{"name":"张三","age":18},{"name":"李四","age":17},{"name":"王五","age":16}]
}
- 待补充…