Java에서 문자열을 JSON 객체로 변환
-
JSONObject
를 사용하여 Java에서 문자열을 JSON 객체로 변환 - Google Gson을 사용하여 Java에서 문자열을 JSON 객체로 변환
-
Jackson
을 사용하여 문자열을 JSON 객체로 변환
이 튜토리얼에서는 Java에서 문자열을 JSON 객체로 변환하는 방법에 대해 설명합니다. 이 작업을 수행하는 데 사용할 수있는 다양한 라이브러리가 있습니다.
JSONObject
를 사용하여 Java에서 문자열을 JSON 객체로 변환
JSONObject
는 문자열을 맵과 같은 객체로 파싱 할 수 있습니다. 정렬되지 않은 키-값 쌍을 저장합니다. 일반적으로org.json
으로 알려진 JSON-java 라이브러리는 필수 maven 종속성과 함께 여기에서 사용됩니다. 우리가 사용한 maven 종속성은 다음과 같습니다.
<!-- https://mvnrepository.com/artifact/org.json/json -->
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20201115</version>
</dependency>
JSON 문자열을JSONObject
로 파싱하기 위해 아래와 같이 생성자에 문자열을 전달합니다.
import org.json.JSONException;
import org.json.JSONObject;
public class StringToJsonObject {
public static void main(String[] args) {
try {
String str = "{\"name\":\"John\",\"age\":\"30\"}";
JSONObject jsonObject = new JSONObject(str);
System.out.println("OBJECT : " + jsonObject.toString());
} catch (JSONException err) {
System.out.println("Exception : " + err.toString());
}
}
}
출력:
OBJECT : {"age":"30","name":"John"}
Google Gson을 사용하여 Java에서 문자열을 JSON 객체로 변환
Google Gson은 Java Objects를 JSON으로 직렬화 / 역 직렬화하는 Java 라이브러리입니다. 또한 Java 문자열을 동등한 JSON 객체로 변환하는 데 사용할 수 있습니다.
이 라이브러리에 필요한 maven 종속성은 다음과 같습니다.
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
이 코드에서는 먼저create()
메서드를 호출하여 GsonBuilder를 사용하여 Gson 인스턴스를 만듭니다. 또한 builder
에서 다양한 구성 설정을 활성화 할 수 있습니다. 아래와 같이setPrettyPrinting()
메소드를 사용합니다. 이름에서 알 수 있듯이 JSON 출력을 꽤 인쇄합니다.
나중에 우리는 JSON 문자열을User
객체로 파싱하는 Gson Object의fromJson
메소드를 사용했습니다. toJson()
메소드는 Gson을 사용하여User
객체를 다시 JSON 문자열로 변환합니다. 따라서 문자열str
은 Gson 라이브러리를 사용하여 JSON 객체로 변환됩니다.
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonIOException;
public class StringToJsonObject {
public static void main(String[] args) {
try {
String str = "{\"name\":\"John\", \"age\":21 , \"place\":\"Nevada\"}";
GsonBuilder builder = new GsonBuilder();
builder.setPrettyPrinting();
Gson gson = builder.create();
User user = gson.fromJson(str, User.class);
System.out.println(user.ShowAsString());
str = gson.toJson(user);
System.out.println("User Object as string : " + str);
} catch (JsonIOException err) {
System.out.println("Exception : " + err.toString());
}
}
}
class User {
public String name;
public int age;
public String place;
public String ShowAsString() {
return "User [" + name + ", " + age + ", " + place + "]";
}
}
출력:
User [John, 21, Nevada]
User Object as string : {
"name": "John",
"age": 21,
"place": "Nevada"
}
Jackson
을 사용하여 문자열을 JSON 객체로 변환
Jackson은 Java JSON
라이브러리’라고도합니다. ObjectMapper
는 JSON을 Java Object로, Java Object를 JSON으로 매핑하는 데 사용됩니다. 이 라이브러리에 사용되는 maven 종속성은 다음과 같습니다.
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.3</version>
</dependency>
Jackson에는 JSON 개체를 나타내는 내장 트리 모델이 있습니다. JsonNode
는 트리 모델을 나타내는 클래스입니다. ObjectMapper 인스턴스mapper
는 JSON을readTree()
를 호출하는JsonNode
트리 모델로 파싱합니다.
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
public class StringToJsonObject {
public static void main(String[] args) {
String json_str = "{\"name\":\"John\", \"age\":21 , \"place\":\"Nevada\"}";
ObjectMapper mapper = new ObjectMapper();
try {
JsonNode node = mapper.readTree(json_str);
String name = node.get("name").asText();
String place = node.get("age").asText();
System.out.println("node" + node);
System.out.println("name: " + name + ", place: " + place);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
}
출력:
node{"name":"John","age":21,"place":"Nevada"}
name: John, place: 21
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn관련 문장 - Java String
- Java 문자열을 바이트로 변환하는 방법
- Java에서 16 진 문자열의 바이트 배열을 변환하는 방법
- Java에서 문자열 대 문자열 배열 변환을 수행하는 방법
- Java에서 문자열에서 부분 문자열을 제거하는 방법
- Java에서 임의 문자열 생성
- Java의 스왑 방법