요즘에는 데이터를 수신하는 것이 매우 일반적입니다. 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 = '[{'No':'17','Name':'Andrew'},{'No':'18','Name':'Peter'}, {'No':'19','Name':'Tom'}]'; 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'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 = '{'name': 'Sam Smith', 'technology': 'Python'}'; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString('technology'); 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 = '{'name': 'Sam Smith', 'technology': 'Python'}'; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString('technology'); System.out.println(technology); } }
산출:
Sam Smith Python