javaでJSONデータを返すには?
JavaでJSONデータを返却する方法には次のようなものがあります。
- org.jsonライブラリを使用してJSONオブジェクトを作成し、文字列に変換して返します。
import org.json.JSONObject;
public class Main {
public static void main(String[] args) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "John");
jsonObject.put("age", 30);
String jsonStr = jsonObject.toString();
System.out.println(jsonStr);
}
}
出力は{“name”:”John”,”age”:30}となります
- JacksonやGsonなど、サードパーティーのライブラリを使用してJavaオブジェクトをJSON文字列として返します。
Jacksonライブラリを利用する:
import com.fasterxml.jackson.databind.ObjectMapper;
public class Main {
public static void main(String[] args) {
ObjectMapper objectMapper = new ObjectMapper();
try {
// 将Java对象转换为JSON字符串
Person person = new Person("John", 30);
String jsonStr = objectMapper.writeValueAsString(person);
System.out.println(jsonStr);
// 将JSON字符串转换为Java对象
Person person2 = objectMapper.readValue(jsonStr, Person.class);
System.out.println(person2.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
}
class Person {
private String name;
private int age;
// 将默认的构造函数设置为public,以便Jackson库可以使用反射来创建对象
public Person() {}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// getter和setter方法省略
}
日本語でネイティブに言い換えると、
{"name":"John","age":30}
John
Gsonライブラリを使用する:
import com.google.gson.Gson;
public class Main {
public static void main(String[] args) {
Gson gson = new Gson();
try {
// 将Java对象转换为JSON字符串
Person person = new Person("John", 30);
String jsonStr = gson.toJson(person);
System.out.println(jsonStr);
// 将JSON字符串转换为Java对象
Person person2 = gson.fromJson(jsonStr, Person.class);
System.out.println(person2.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// getter和setter方法省略
}
結果の出力が、Jackson ライブラリを使用した上記の例と同一です。