String 转json对象、转实体类、String 转数组 | alibaba.fastjson
目录说明String转数组string 转jsonObjectstring 转mapstring 转实体string转list常见错误说明常用的json工具类有alibaba.fastjson、net.sf.json,两个工具的使用方法不同。本文使用alibaba.fastjson工具类经行数据处理,引入了com.alibaba.fastjson.JS...
·
目录
说明
常用的json工具类有alibaba.fastjson、net.sf.json,两个工具的使用方法不同。本文使用alibaba.fastjson工具类经行数据处理,引入com.alibaba.fastjson.JSON、com.alibaba.fastjson.JSONArray、com.alibaba.fastjson.JSONObject三个类。被转换的字符串必须严格符合json规则!
String 转数组
String arrayStr = "[" +
" {\n" +
" \"name\": \"jsonBaby\",\n" +
" \"age\": 5,\n" +
" \"timestamp\": 1585100309642\n" +
" }\n" +
" ]";
JSONArray data = JSON.parseArray(arrayStr);
System.out.println(data);
输出:[{"name":"jsonBaby","age":5,"timestamp":1585100309642}]
string 转jsonObject
String objectStr =
" {\n" +
" \"name\": \"jsonBaby\",\n" +
" \"age\": 5,\n" +
" }\n";
JSONObject object = JSON.parseObject(objectStr);
System.out.println("我是"+object.get("name")+",我"+object.get("age")+"岁了");
输出:我是jsonBaby,我5岁了
string 转map
String objectStr =
" {\n" +
" \"name\": \"jsonBaby\",\n" +
" \"age\": 5,\n" +
" }\n";
Map maps = (Map)JSON.parse(objectStr);
System.out.println("我是"+maps.get("name")+",我"+maps.get("age")+"岁了");
输出:我是jsonBaby,我5岁了
string 转实体类
新增实体
public class Student implements Serializable{
private static final long serialVersionUID = -919201640201914789L;
public String age;
public String name;
public Student(String age, String name) {
this.age = age;
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
String objectStr =
" {\n" +
" \"name\": \"jsonBaby\",\n" +
" \"age\": 5,\n" +
" }\n";
//4.string 转实体
Student student = JSONObject.parseObject(objectStr,Student.class);
System.out.println("我是"+student.name+",我"+student.age+"岁了");
输出:我是jsonBaby,我5岁了
string 转list
String arrayStr = "[" +
" {\n" +
" \"name\": \"jsonBaby\",\n" +
" \"age\": 5,\n" +
" \"timestamp\": 1585100309642\n" +
" }\n" +
" ]";
List<Student> list = JSONArray.parseArray(arrayStr,Student.class);
for(Student stud : list){
System.out.println("我是"+stud.name+",我"+stud.age+"岁了");
}
输出:我是jsonBaby,我5岁了
常见错误
com.alibaba.fastjson.JSONException: expect ':' at 0, name name
这个错误是较常见的错误,因为json格式错误导致,冒号被转成了等于号。如果遇到了可以把源数据打印出来看一下是不是符合json规则。从接口返回的数据可以使用JSON.toJSON()方法先将字符串转换为json标准的数据。

更多推荐

所有评论(0)