介绍:在Java中,经常会使用Json格式的字符串来传输数据,但是在Java程序内部我们又需要把Json字符串转换为Java对象来方便的操作数据。本文将介绍如何使用Json相关的工具类将Json字符串转换为Java对象,并将Java对象转换为Json格式的字符串。
当我们有一个Json格式的字符串需要转换为Java对象时,可以使用Json相关的工具类,例如Google的Gson库或Fastjson库。下面以Fastjson为例,介绍如何把Json字符串转换为Java对象。
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
public class JsonToObject {
public static void main(String[] args) {
String jsonString = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
JSONObject jsonObject = JSON.parseObject(jsonString);
String name = jsonObject.getString("name");
int age = jsonObject.getIntValue("age");
String city = jsonObject.getString("city");
Person person = new Person(name, age, city);
System.out.println(person);
}
static class Person {
private String name;
private int age;
private String city;
public Person(String name, int age, String city) {
this.name = name;
this.age = age;
this.city = city;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", city='" + city + '\'' +
'}';
}
}
}
可以看到,我们使用了Fastjson的JSON.parseObject方法将Json字符串转换为了一个Json对象,然后通过Json对象中提供的方法,来取出需要的数据,最后将取出的数据组装成Java对象。
2.将Java对象转换为Json格式的字符串
当我们有一个Java对象需要转换为Json格式的字符串时,可以使用Json相关的工具类,例如Google的Gson库或Fastjson库。下面以Fastjson为例,介绍如何把Java对象转换为Json格式的字符串。
import com.alibaba.fastjson.JSON;
public class ObjectToJson {
public static void main(String[] args) {
Person person = new Person("John", 30, "New York");
String jsonString = JSON.toJSONString(person);
System.out.println(jsonString);
}
static class Person {
private String name;
private int age;
private String city;
public Person(String name, int age, String city) {
this.name = name;
this.age = age;
this.city = city;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", city='" + city + '\'' +
'}';
}
}
}
可以看到,我们使用了Fastjson的JSON.toJSONString方法,将Java对象转换为了Json格式的字符串。
实验结果:
使用以上两种方式转换,均可以将Json格式的字符串与Java对象相互转换。
概括:
本文介绍了如何使用Json相关的工具类快速的将Json字符串转换为Java对象,并将Java对象转换为Json格式的字符串。在实际开发中,如果项目中已经引入了Json相关的工具类库,可以直接使用相关的方法进行转换,否则需要先添加相关的工具类库。