logo

Java에서 문자열을 JSON 개체로 변환하는 방법은 무엇입니까?

요즘에는 데이터를 수신하는 것이 매우 일반적입니다. JSON 문자열 XML 대신 형식을 지정합니다. Java에서 JSON 문자열을 처리할 때 JSON 문자열은 변환되지 않습니다. JSON 문자열 에게 JSON 객체 . 하지만 JSON 문자열 처리하기 어렵기 때문에 항상 좋은 선택은 아닙니다. 기술의 변화와 수요로 인해 우리는 JSON 문자열을 JSON 객체로 변환 값을 검색합니다. 이 문제를 해결하기 위해 다음을 수행할 수 있는 오픈 소스 라이브러리가 있습니다. JSON 문자열을 JSON 개체로 변환합니다. 이 섹션에서는 다음과 같이 설명했습니다. JSON 문자열을 JSON 개체로 변환하는 방법 예를 들어 자세히 설명합니다. 본론으로 넘어가기 전에 JSON 형식에 대해 살펴보겠습니다.

 jsonStringExample = { 'name' : 'Ronaldo', 'nickname' : 'Sam', 'id' : 312, 'age' : 21, 'height' : 163, 'lastOverScore' : [4, 1, 6, 6, 2, 1] } 

위의 JSON 형식에는 6개의 속성이 포함되어 있으며 그 중 처음 2개는 문자열이고 다음 3개는 숫자이며 마지막으로 JSON 배열입니다.

JSON 문자열을 JSON 개체로 변환

Java에서 문자열을 JSON 개체로 변환하는 데 사용되는 세 가지 라이브러리는 다음과 같습니다.

  • Gson 라이브러리 사용
  • JSON-Simple 라이브러리 사용
  • 잭슨 도서관

Gson 라이브러리 사용

Gson은 오픈 소스이며 풍부합니다. 자바 Google에서 제공하는 라이브러리입니다. JSON 문자열을 동등한 JSON 개체로 변환하고 JSON 개체를 JSON 문자열로 변환하는 데 사용됩니다. 다음 코드 줄은 JSON 문자열을 JSON 개체로 변환하는 데 사용됩니다.

 Gson g = new Gson(); Student s = g.fromJson(jsonString, Student.class) 

다음을 사용하여 JSON 개체를 JSON 문자열로 변환할 수도 있습니다. toJson() 방법.

 String str = g.toJson(p); 

JSON-Simple 라이브러리 사용

JSON 문자열을 JSON 개체로 변환하는 데 사용되는 또 다른 오픈 소스 Java 라이브러리입니다. JSON-Simple 라이브러리의 장점은 크기가 작다는 것입니다. 메모리 제약 환경이 중요한 곳에 적합합니다. JDK 1.2와도 호환됩니다. 이는 Java 5가 아닌 레거시 프로젝트와 함께 사용할 수 있음을 의미합니다. 다음 명령문을 사용하여 JSON 문자열을 JSON 개체로 변환합니다.

 JSONParser parser = new JSONParser(); JSONObject json = (JSONObject) parser.parse(stringToParse); 

잭슨 라이브러리 사용

Jackson 라이브러리는 Java 개체를 JSON에 매핑하거나 그 반대로 매핑하는 데 효율적이고 널리 사용되는 Java 라이브러리입니다. 기능이 풍부하고 성능이 빠르며 스트리밍도 지원합니다. 스트림은 메모리에 완전히 로드하지 않고도 웹 서비스의 대규모 JSON 출력을 구문 분석할 수 있습니다. 다음 문은 학생을 나타내는 JSON 문자열을 학생을 나타내는 Java 클래스로 변환합니다.

 Student student = new ObjectMapper().readValue(jsonString, Student.class); 

Jackson 라이브러리의 단점은 최소한 JDK 1.5가 필요하다는 것입니다. 따라서 이전 버전을 다루는 경우에는 적합하지 않습니다. Jackson 라이브러리의 또 다른 단점은 J2ME를 지원하지 않는다는 것입니다.

JSON 문자열을 JSON 객체로 변환하는 예

다음 프로그램에서는 JSON 문자열을 JSON 개체로 변환했습니다.

JsonStringToJsonObjectExample.java

 import org.json.JSONObject; import org.json.JSONArray; public class JsonStringToJsonObjectExample { public static void main(String args[]) { String str = &apos;[{&apos;No&apos;:&apos;17&apos;,&apos;Name&apos;:&apos;Andrew&apos;},{&apos;No&apos;:&apos;18&apos;,&apos;Name&apos;:&apos;Peter&apos;}, {&apos;No&apos;:&apos;19&apos;,&apos;Name&apos;:&apos;Tom&apos;}]&apos;; JSONArray array = new JSONArray(str); for(int i=0; i <array.length(); i++) { jsonobject object="array.getJSONObject(i);" system.out.println(object.getstring('no')); system.out.println(object.getstring('name')); } < pre> <p> <strong>Output:</strong> </p> <pre> 17 Andrew 18 Peter 19 Tom </pre> <p>Let&apos;s see another example.</p> <p> <strong>JsonStringToJsonObjectExample2.java</strong> </p> <pre> import org.json.*; public class JsonStringToJsonObjectExample2 { public static void main(String[] args) { String string = &apos;{&apos;name&apos;: &apos;Sam Smith&apos;, &apos;technology&apos;: &apos;Python&apos;}&apos;; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString(&apos;technology&apos;); System.out.println(technology); } } </pre> <p> <strong>Output:</strong> </p> <pre> Sam Smith Python </pre> <hr></array.length();>

또 다른 예를 살펴보겠습니다.

JsonStringToJsonObjectExample2.java

배열 정렬 자바
 import org.json.*; public class JsonStringToJsonObjectExample2 { public static void main(String[] args) { String string = &apos;{&apos;name&apos;: &apos;Sam Smith&apos;, &apos;technology&apos;: &apos;Python&apos;}&apos;; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString(&apos;technology&apos;); System.out.println(technology); } } 

산출:

 Sam Smith Python