Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java를 사용하여 JSON 배열을 읽고 구문 분석하는 방법은 무엇입니까?

<시간/>

Json 배열은 대괄호로 묶인 정렬된 값 모음입니다. 즉, '['로 시작하고 ']'로 끝납니다. 배열의 값은 ','(쉼표)로 구분됩니다.

샘플 JSON 배열

{ "책":[ 자바, JavaFX, Hbase, Cassandra, WebGL, JOGL]}

json-simple은 JSON 객체를 처리하는 데 사용되는 경량 라이브러리입니다. 이를 사용하여 Java 프로그램을 사용하여 JSON 문서의 내용을 읽거나 쓸 수 있습니다.

JSON-Simple maven 종속성

다음은 JSON 단순 라이브러리에 대한 maven 종속성입니다. -

  com.googlecode.json-simple json-simple 1.1.1 

이것을 pom.xml 파일 끝에 있는 태그에 붙여넣습니다. ( 태그 앞)

먼저 JSON을 생성해 보겠습니다. 이름이 sample.json인 문서 아래와 같이 6개의 키-값 쌍과 배열로 -

{ "ID":"1", "First_Name":"Krishna Kasyap", "Last_Name":"Bhagavatula", "Date_Of_Birth":"1989-09-26", "Place_Of_Birth":"Vishakhapatnam", " 급여":"25000" "연락처":[ "이메일:krishna_kasyap@gmail.com", "전화:9848022338", "시:Hyderabad", "지역:Madapur", "주:Telangana" ]} 

Java 프로그램을 사용하여 JSON 파일에서 배열을 읽으려면 -

  • json-simple 라이브러리의 JSONParser 클래스를 인스턴스화합니다.
JSONParser jsonParser =새로운 JSONParser();
  • parse() 를 사용하여 얻은 객체의 내용을 구문 분석합니다. 방법.
//JSON 파일의 내용 구문 분석JSONObject jsonObject =(JSONObject) jsonParser.parse(new FileReader("E:/players_data.json"));
  • get()을 사용하여 키와 연결된 값 검색 방법.
문자열 값 =(문자열) jsonObject.get("key_name");
  • 다른 요소와 마찬가지로 get()을 사용하여 json 배열을 검색합니다. 메서드를 JSONArray 객체에 추가합니다.
JSONArray jsonArray =(JSONArray) jsonObject.get("연락처");
  • 반복자() JSONArray 클래스의 메서드는 현재 배열의 내용을 반복할 수 있는 Iterator 객체를 반환합니다.
//arrayIterator의 내용 반복 iterator =jsonArray.iterator();while(iterator.hasNext()) { System.out.println(iterator.next());}

다음 Java 프로그램은 위에서 생성한 sample.json 파일을 파싱하여 그 내용을 읽어서 표시합니다.

가져오기 java.io.FileNotFoundException;가져오기 java.io.FileReader;가져오기 java.io.IOException;가져오기 java.util.Iterator;가져오기 org.json.simple.JSONArray;가져오기 org.json.simple.JSONObject;가져오기 org.json.simple.parser.JSONParser;import org.json.simple.parser.ParseException;public class ReadingArrayFromJSON { public static void main(String args[]) { //JSONParser 객체 생성 JSONParser jsonParser =new JSONParser(); try { //JSON 파일의 내용을 구문 분석 JSONObject jsonObject =(JSONObject) jsonParser.parse(new FileReader("E:/test.json")); //URL 형성 System.out.println("JSON의 내용은:"); System.out.println("아이디:"+jsonObject.get("아이디")); System.out.println("이름:"+jsonObject.get("이름")); System.out.println("성:"+jsonObject.get("성명")); System.out.println("생년월일:"+ jsonObject.get("Date_Of_Birth")); System.out.println("출생지:"+ jsonObject.get("Place_Of_Birth")); System.out.println("급여:"+jsonObject.get("급여")); //배열 가져오기 JSONArray jsonArray =(JSONArray) jsonObject.get("contact"); System.out.println(""); System.out.println("연락처:"); //배열의 내용 반복 Iterator iterator =jsonArray.iterator(); while(iterator.hasNext()) { System.out.println(iterator.next()); } } catch(FileNotFoundException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); } catch(ParseException e) { e.printStackTrace(); } }}

출력

JSON의 내용:ID:1이름:Krishna Kasyap성:Bhagavatula 생년월일:1989-09-26출생지:Vishakhapatnam연봉:25000연락처:e-mail:krishna_kasyap@gmail.comphone:984880 :텔랑가나