Javaの文字列をJSONに変換する方法は?
JSONライブラリ、JacksonやGsonなどを用いることで、Javaの文字列オブジェクトをJSON形式に変換できます。Jacksonライブラリを使う場合のサンプルコードは下記の通りです。
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.core.JsonProcessingException;
public class Main {
public static void main(String[] args) {
ObjectMapper objectMapper = new ObjectMapper();
String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
try {
// 将String转换为JSON对象
Object json = objectMapper.readValue(jsonString, Object.class);
// 将JSON对象转换为格式化的字符串
String formattedJson = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(json);
System.out.println(formattedJson);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
}
上のサンプルコードでは、まずObjectMapperオブジェクトを作成します。次に、readValue()メソッドでStringオブジェクトをJSONオブジェクトに変換します。その後、writerWithDefaultPrettyPrinter()メソッドでJSONオブジェクトをフォーマットされた文字列に変換し、最後にプリントします。
但し、上記のサンプルコードのJSON文字列はJSON形式の有効な文字列であり、普通の文字列をJSON形式に変換する場合は、予めJSONオブジェクトを構築してから文字列に変換する必要があります。例:
import com.fasterxml.jackson.databind.ObjectMapper;
public class Main {
public static void main(String[] args) {
ObjectMapper objectMapper = new ObjectMapper();
String string = "Hello, world!";
try {
// 将普通字符串转换为JSON对象
Object json = objectMapper.writeValueAsString(string);
// 将JSON对象转换为格式化的字符串
String formattedJson = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(json);
System.out.println(formattedJson);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
}
Gsonライブラリを利用することで同等の機能を実装することもできます。以下にGsonライブラリを使用したサンプルコードを示します。
import com.google.gson.Gson;
public class Main {
public static void main(String[] args) {
Gson gson = new Gson();
String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
// 将String转换为JSON对象
Object json = gson.fromJson(jsonString, Object.class);
// 将JSON对象转换为格式化的字符串
String formattedJson = gson.toJson(json);
System.out.println(formattedJson);
}
}
JSON 文字列は正しい JSON フォーマットである必要があります。通常の文字列を JSON に変換する場合は、JSON オブジェクトを作成してから、文字列に変換する必要があります。
import com.google.gson.Gson;
public class Main {
public static void main(String[] args) {
Gson gson = new Gson();
String string = "Hello, world!";
// 将普通字符串转换为JSON对象
Object json = gson.toJsonTree(string);
// 将JSON对象转换为格式化的字符串
String formattedJson = gson.toJson(json);
System.out.println(formattedJson);
}
}
Jsonライブラリを使用する場合は、JacksonやGsonなど、利用するライブラリをプロジェクトの依存関係に追加する必要があります。各ライブラリのダウンロード方法や利用方法については、公式ウェブサイトを参照してください。