JSON API 활용하기(JSON-Java)
326
2 asked
package TPC;
import org.json.*;
public class Project01_Bd {
public static void main(String[] args) {
// JSON-Java(org.json)
JSONArray students = new JSONArray(); //JSONArray 생성
JSONObject student = new JSONObject(); // JSONObject객체생성
student.put("name", "홍길동"); // key와 value쌍으로 이루어진 구조인 put메서드를 사용해서 studunt에 데이터를 집어넣는다.
student.put("phone", "010-1111-1111");
student.put("address","서울"); //여기까지가 한사람의 JSON 객체다.
System.out.println(student); //{"address":"서울","phone":"010-1111-1111","name":"홍길동"}
// 여기까지 우리가 JSON으로 굳이 객체를 만들지 않더라도 제이슨 구조가 바로 만들어진다.
students.put(student);
System.out.println(student); //{"address":"서울","phone":"010-1111-1111","name":"홍길동"}
student = new JSONObject(); // 새로운 인스턴스 생성되어 변수에 할당되어 이전 인스턴스에 대한 참조가 대체 (홍길동 -> 나길동)
student.put("name", "나길동");
student.put("phone", "010-1111-1111");
student.put("address","서울");
students.put(student); //배열은 호출 시점에 객체에 대한 참조를 보유하므로 홍길동 -> 나길동으로 재할당 되었더라도 배열은 원래 객체에 대한 참조를 유지한다.
System.out.println(student);//{"address":"서울","phone":"010-1111-1111","name":"나길동"}
System.out.println(students); //[{"address":"서울","phone":"010-1111-1111","name":"홍길동"},{"address":"서울","phone":"010-1111-1111","name":"나길동"}]
}
}
student라는 객체를 홍길동에서 나길동으로 재할당했는데, 배열은 호출시점에 객체에 대한 참조를 보유해서 재할당하더라도 배열은 이전 객체에 대한 참조를 유지한다고 하는데.. 그러면 홍길동은 배열에선 살아있는거고 (?) student 객체에서는 사라진건가요..?.......
그리고 JSONObject에서 put메서드가 key-value 쌍이라고 설명하셨는데, JSONArray는 왜 put메서드를 객체로 저장하나요? put메서드는 객체에 저장하는지 배열에 저장하는지에 따라 구조가 달라지는건가요?
Answer 2
0
답변감사합니다 선생님
1번 질문 관련 추가 질문이 있습니다.
그러면 마지막 student에는 나길동 정보만 들어있는데,
배열은 어떻게 기존 객체 홍길동에 대한 참조를 유지할수있는건가요?
0
1.JSONObject student = new JSONObject(); 이렇게 json객체를 만들면 새로운 객체가 만들어집니다. 처음에 홍길동을 만들고 아래처럼 다시 객체를 만들면 새로운 객체가 만들어 지기때문에 나길동이 들어갑니다.
JSONObject student = new JSONObject();
배열에는 2개의 데이터가 들어가고 마지막 student에는 나길동 정보만 들어가 있겠죠?
배열(JSONArray : [ ])에 하나의 객체(JSONObject : { })를 넣는 부분인데요.
JSONObject를 만들때는 key-value로 만들고 put(key,value)으로 넣은면됩니다.
이렇게 만을어진 JSONObject를 JSONArray에 넣을때는 값만 put(value)으로 넣으면 아래처럼 구조가 되는겁니다.
[{ },{ },{ }]
cmd창.. 인텔리제이 소켓만들기 (실습)
0
176
2
Gson
0
153
1
질문있습니다
0
257
1
질문있습니다.
0
213
1
강의 들으면서 잘 안되는 부분이 있어서요~
0
350
1
지도가 나오지 않아요
0
358
1
Gson 라이브러리 추가시 오류
0
1811
1
아래 소스의 차이가 뭘까요?
0
314
1
선생님 javaTPC API편 PDF파일이 안보여서요~
0
340
1
cmd에서 프로그램 실행 실패
0
519
1
TPC강의 모두 수강 후 현재 실전프로젝트 강의중 질문입니다.
0
272
1
BookDTO 생성자 질문
0
357
1
A instance of B의 작동원리가 궁금합니다!
0
283
1
채팅관련 질문입니다
1
415
0
cmd창 경로
0
326
1
connect 할 때 post 방식
0
273
0
JSONTokener 에러
0
349
1
Project03_A > rows.next 질문드립니다.
0
216
0
InputStream is = Project01_C.class.getResourceAsStream(src) 경로에 대해서
0
338
1
JSONObjct를 쓰는 이유 ??
1
290
1
지도 api 프로젝트 코드 문의
0
376
3
오류: 기본 클래스 Project06A_Server.class을(를) 찾거나 로드할 수 없습니다.
0
552
1
new 객체생성 자동완성 로딩 오류
0
521
1
geocode 요청방법
0
596
2

