JSON 데이터 교환 형식입니다. 널리 사용되는 가볍고 언어 독립적인 형식입니다. 데이터를 JSON에서 XML로 변환할 수 있습니다. Java는 수많은 JSON 패키지를 제공합니다. 이러한 패키지의 도움으로 우리는 검색하거나 JSONObject에서 값을 가져옵니다. 우리는 두 가지 JSON 패키지를 사용했습니다. org.json 그리고 org.json.simple . 이 섹션에서는 다음 내용을 학습합니다. 적절한 예를 통해 Java의 JSONObject에서 값을 얻는 방법.
Java에서 JSONObject란 무엇입니까?
~ 안에 자바 , JSON객체 형식의 데이터를 포함하는 정렬되지 않은 컬렉션입니다. 이름-값 한 쌍. 이는 이름과 값 사이에 콜론이 있는 한 쌍의 중괄호로 묶인 문자열로 표시됩니다. 내부 형식은 이름으로 값에 액세스하고 이름으로 값을 추가하고 바꾸기 위한 메소드를 가져오고 넣어야 하는 객체입니다.
{ 'first name': 'John', 'city': 'Florida', 'age': '22' },
위의 예에서, 이름, 도시, 그리고 나이 이름이고, 존, 플로리다, 그리고 22 각각의 값입니다.
가운데 버튼 CSS
Java JSONObject 클래스
Java는 다음에서 정의된 JSONObject 클래스를 제공합니다. org.json 패키지. 이는 변경할 수 없는(챌린지할 수 없는) JSONObject 값을 나타냅니다. 객체 값은 정렬되지 않은 그룹 이름-값 한 쌍. 또한 수정 불가능한 JSON 개체 이름-값 매핑을 볼 수 있는 맵을 제공합니다. JSONObject 값은 다음과 같습니다. 부울, 문자열, 숫자, JSONObject, JSONArray, JSONNumber, JSONString 등 이러한 JSONObject 값은 다양한 해당 접근자 메서드를 사용하여 액세스할 수 있습니다.
그만큼 얻다() 메소드는 값을 찾으면 값을 반환하고 값을 찾지 못하면 예외를 발생시킵니다. 동안 고르다() 메서드는 예외를 발생시키는 대신 기본값을 반환합니다. 값은 null일 수 있습니다. 이 두 가지 방법의 주요 차이점입니다. 따라서 이 두 가지 방법은 JSONObject에서 값을 가져오는 데 유용합니다. 일반 메소드 get() 및 opt()에 의해 반환된 객체를 캐스팅하거나 쿼리할 수 있습니다.
그만큼 JSON객체 클래스에는 JSONObject에서 값을 가져오는 데 사용할 수 있는 다음 메서드가 포함되어 있습니다.
getBoolean() 메서드
이 메서드는 문자열 유형의 매개변수 이름을 구문 분석합니다. 구문 분석 매개변수에 대한 관련 매핑의 부울 값을 반환합니다. 연결된 매핑이 JsonValue.TRUE이면 true를 반환하고, 연결된 매핑이 JsonValue.FALSE이면 false를 반환합니다.
통사론:
boolean getBoolean(String name)
그것은 던진다 NullPointer예외 지정된 이름에 매핑이 없는 경우. 그것도 던진다 클래스캐스트예외 지정된 이름 매핑은 JsonValue.TRUE 또는 JsonValue.FALSE에 할당할 수 없습니다.
getInt() 메소드
을 얻는 데 사용됩니다. JsonNumber(이름).intValue(). 이 메서드는 문자열 유형의 매개변수 이름을 구문 분석합니다. 구문 분석된 매개변수에 대한 연관된 매핑의 정수 값을 반환합니다.
통사론:
int getInt(String name)
그것은 던진다 NullPointer예외 지정된 이름에 매핑이 없는 경우. 그것도 던진다 클래스캐스트예외 지정된 이름 매핑을 JsonNumber에 할당할 수 없습니다.
getJsonArray() 메서드
을 얻는 데 사용됩니다. JsonArray get(이름). 이 메소드는 연관된 값이 반환될 String 유형의 인수 이름을 구문 분석합니다. 구문 분석된 매개변수에 대한 연관된 매핑의 배열 값을 반환합니다. 개체에 매개변수에 대한 매핑이 없으면 null을 반환합니다.
통사론:
JsonArray geJsonArray(String name)
그것은 던진다 클래스캐스트예외 지정된 이름 매핑을 JsonArray에 할당할 수 없습니다.
getJsonNumber() 메서드
을 얻는 데 사용됩니다. (JsonNumber)get(이름). 이 메소드는 관련 값이 반환될 String 유형의 인수 이름을 구문 분석합니다. 구문 분석된 매개변수에 대한 연관된 매핑의 숫자 값을 반환합니다. 개체에 매개변수에 대한 매핑이 없으면 null을 반환합니다.
자바에는 임의의 생성기가 없습니다.
통사론:
JsonNumber geJsonNumber(String name)
그것은 던진다 클래스캐스트예외 지정된 이름 매핑을 JsonNumber에 할당할 수 없습니다.
getJsonObject() 메서드
을 얻는 데 사용됩니다. (JsonObject)get(이름). 이 메소드는 관련 값이 반환될 String 유형의 인수 이름을 구문 분석합니다. 구문 분석 매개변수에 대한 연관된 매핑 개체를 반환합니다. 개체에 매개변수에 대한 매핑이 없으면 null을 반환합니다.
자바 스위치 int
통사론:
JsonObject geJsonObject(String name)
그것은 던진다 클래스캐스트예외 지정된 이름 매핑을 JsonObject에 할당할 수 없습니다.
getJsonString() 메서드
을 얻는 데 사용됩니다. (JsonString)get(이름). 이 메소드는 관련 값이 반환될 String 유형의 인수 이름을 구문 분석합니다. 구문 분석된 매개변수에 대한 연관된 매핑의 문자열 값을 반환합니다. 개체에 매개변수에 대한 매핑이 없으면 null을 반환합니다.
통사론:
JsonString geJsonString(String name)
그것은 던진다 클래스캐스트예외 지정된 이름 매핑을 JsonString에 할당할 수 없습니다.
getString() 메서드
을 얻는 데 사용됩니다. getJsonString(이름).getString() . 이 메서드는 관련 값이 String으로 반환될 String 유형의 인수 이름을 구문 분석합니다. 구문 분석된 매개변수에 대한 연관된 매핑의 문자열 값을 반환합니다.
통사론:
String geString(String name)
그것은 던진다 NullPointer예외 지정된 이름에 매핑이 없는 경우. 그것도 던진다 클래스캐스트예외 지정된 이름 매핑을 JsonString에 할당할 수 없습니다.
위의 방법을 사용하여 프로그램을 만들고 JSON 개체에서 값을 가져옵니다.
참고: 다음 코드를 사용하기 전에 json-20200518.jar을 다운로드하세요. 파일을 만들어 프로젝트에 추가하세요.
GetValueFromJsonExample.java
import org.json.*; public class GetValueFromJsonExample { public static void main(String[] args) throws JSONException { //constructor of the JSONObject class JSONObject obj = new JSONObject( '{' + 'Employee ID: 092789,' + 'Employee Name: Helen Mirren,' + 'Age: 27, ' + 'Designation: Assistant Manager,' + 'City: Florida,' + 'Salary: 67000.00, ' + 'Experience: 26 ' + '}' ); //getting values form the JSONObject System.out.println('Employee ID: '+obj.getInt('Employee ID')); System.out.println('Employee Name: '+obj.getString('Employee Name')); System.out.println('Age: '+obj.getInt('Age')); System.out.println('Designation: '+obj.getString('Designation')); System.out.println('City: '+obj.getString('City')); System.out.println('Salary: '+obj.getDouble('Salary')); System.out.println('Experience: '+obj.getInt('Experience') +' Months'); } }
산출:
다른 JSON 라이브러리를 사용하고 JSONObject에서 값을 가져와 보겠습니다. 다음 프로그램에서는 JSON-간단 도서관. 다음 프로그램을 사용하기 전에 json-simple-1.1.1.jar 파일을 다운로드하여 프로젝트에 추가하세요.
dfs 알고리즘
GetValueFromJsonObjectExample.java
import org.json.simple.JSONObject; import org.json.simple.JSONValue; public class GetValueFromJsonObjectExample { public static void main(String[] args) { //defining a JSON string String s='{'name':'William Hill','Salary':67000.0,'age':42}'; Object obj=JSONValue.parse(s); //creating an object of JSONObject class and casting the object into JSONObject type JSONObject jsonObject = (JSONObject) obj; //getting values form the JSONObject and casting that values into corresponding types String name = (String) jsonObject.get('name'); double salary = (Double) jsonObject.get('Salary'); long age = (Long) jsonObject.get('age'); //printing the values System.out.println('Name: '+name); System.out.println('Salary: '+salary); System.out.println('Age: '+age); } }
산출: