Json 파싱
- 작성자 :
- 김*혁
- 작성일 :
- 2021-09-02 10:17:18
- 조회수 :
- 3,969
- 구분 :
- 개발환경 / 3.7
- 진행상태 :
- 완료
Q
현재 개발 상황
1. ajax를 통해서 db에서 data를 가져온 후 JavaScript에서 jsp 에 넣어줄 태그들을 생성하고 필요한 정보를 넣어 client화면을 그려주고 있습니다.
문제상황
1. 현재 JavaScript에서 만든 배열객체 [ { } ] data 를 - > A라고 칭하겠습니다.
2. 만든 A를 자바스크립트 안에서 form태그를 만들어 "value" = JSON.stringify( A) 로 controller로 보내고 있습니다.
3. controller에서는 보내온 자료를 String A 로써 받고 있으며 System.out.print(A) 로 보았을 때 데이터가 들어 와있습니다.
4. 받은 A를 Java단에서 사용하기 위해 파싱 진행--> org.json.simple 라이브러리와 , gson 라이브러리 v 2.8.8 을 사용해서 가져온 값을 파싱 해보았지만 아예 먹히지가 않습니다 .(파싱한 값을 System.out.print( 파싱한 값) 넣어서 해보아도 전혀 뜨지 않음)
5. 혹시나 해서 위의 두개의 라이브러리 문법을 사용 했을때 controller가 어디까지 로직을 읽나 시험을 했을때 문법을 기준으로 문법 바로 위에 System.out.print( "아무 텍스트" )넣으면 출력을 하고 문법 안에 System.out.print( "아무 텍스트" ) 를 넣었을 때에는 아예 출력을 하지 않습니다.
6. 위의 상황을 겪고 JSON.stringify()사용하지 않고 쌩 data를 보냈을때 자바단에서 List<?> A형 이나 Object A형으로 받고 출력을 하면 [object object] 라고 뜨며(=다른 자료형태는 전혀 받지 못함 제네릭타입에 Map 도 안됨) 이것을 가지고 강제 형변형 과 같은 로직을 수행도 해보았지만 사용가능한 data로 정제 할 수 없었습니다.
질문
1. 문제상황의 3번 : 들어온 데이터가 쌍따움표 표식을 읽지 못하여 현재 " 로 변경 되어 나옵니다 . 혹시 이 부분을 다시 쌍따움표 " 로 바꿔줘 야 하는지의 질문과 함게 만약 바꿔 줘야 된다면 replaceAll()을 사용 해서 매개변수로 (""", " " " ) 두번째 매개변수에 " " " 가 안먹힙니다 이걸 어떻게 해야 되는지가 궁금합니다. 즉 --> " 쌍따움표 표시를 어떻게 해야 될지입니다.
2. 문제상황 5번 : 이러한 경우는 어떠한 경우이며 , 또한 JavaScript에서 객체배열 정보를 egov의 controller에서 어떻게 하면 사용가능한 데이터로 만들 수 있는지 알고 싶습니다.
3. 문제상황 6번: 원본 데이터를 이용해서 자바에서 사용가능한 형으로 만들 수 있는지 없는지 여부를 알고 싶습니다.
1. ajax를 통해서 db에서 data를 가져온 후 JavaScript에서 jsp 에 넣어줄 태그들을 생성하고 필요한 정보를 넣어 client화면을 그려주고 있습니다.
문제상황
1. 현재 JavaScript에서 만든 배열객체 [ { } ] data 를 - > A라고 칭하겠습니다.
2. 만든 A를 자바스크립트 안에서 form태그를 만들어 "value" = JSON.stringify( A) 로 controller로 보내고 있습니다.
3. controller에서는 보내온 자료를 String A 로써 받고 있으며 System.out.print(A) 로 보았을 때 데이터가 들어 와있습니다.
4. 받은 A를 Java단에서 사용하기 위해 파싱 진행--> org.json.simple 라이브러리와 , gson 라이브러리 v 2.8.8 을 사용해서 가져온 값을 파싱 해보았지만 아예 먹히지가 않습니다 .(파싱한 값을 System.out.print( 파싱한 값) 넣어서 해보아도 전혀 뜨지 않음)
5. 혹시나 해서 위의 두개의 라이브러리 문법을 사용 했을때 controller가 어디까지 로직을 읽나 시험을 했을때 문법을 기준으로 문법 바로 위에 System.out.print( "아무 텍스트" )넣으면 출력을 하고 문법 안에 System.out.print( "아무 텍스트" ) 를 넣었을 때에는 아예 출력을 하지 않습니다.
6. 위의 상황을 겪고 JSON.stringify()사용하지 않고 쌩 data를 보냈을때 자바단에서 List<?> A형 이나 Object A형으로 받고 출력을 하면 [object object] 라고 뜨며(=다른 자료형태는 전혀 받지 못함 제네릭타입에 Map 도 안됨) 이것을 가지고 강제 형변형 과 같은 로직을 수행도 해보았지만 사용가능한 data로 정제 할 수 없었습니다.
질문
1. 문제상황의 3번 : 들어온 데이터가 쌍따움표 표식을 읽지 못하여 현재 " 로 변경 되어 나옵니다 . 혹시 이 부분을 다시 쌍따움표 " 로 바꿔줘 야 하는지의 질문과 함게 만약 바꿔 줘야 된다면 replaceAll()을 사용 해서 매개변수로 (""", " " " ) 두번째 매개변수에 " " " 가 안먹힙니다 이걸 어떻게 해야 되는지가 궁금합니다. 즉 --> " 쌍따움표 표시를 어떻게 해야 될지입니다.
2. 문제상황 5번 : 이러한 경우는 어떠한 경우이며 , 또한 JavaScript에서 객체배열 정보를 egov의 controller에서 어떻게 하면 사용가능한 데이터로 만들 수 있는지 알고 싶습니다.
3. 문제상황 6번: 원본 데이터를 이용해서 자바에서 사용가능한 형으로 만들 수 있는지 없는지 여부를 알고 싶습니다.
환경정보
-
- OS 정보 : window 11
- 표준프레임워크 버전 : 3.7
- JDK(JRE) 정보 : 1.8
- WAS 정보 : tomcat9
- DB 정보 : postgresql
- 기타 환경 정보 : 없음
A
안녕하세요.
표준프레임워크센터 입니다.
커스텀 코드에 대해 문의시
다양한결과와 변수가 있기 때문에 답변에 제한이 있습니다.
질문 1번의 경우 해당 부분이 javascript로 보이는데요.
"abc".replaceAll("b",'"')와 같이 ''기호를 사용하시면 될듯 합니다.
질문2,3의 경우 커스텀된 코드 레벨이라
정확한 답변이 어려울듯 합니다.
저희가 제공하는 소스를 예시로 하여 문의를 주시는 식으로
범위를 줄여주시면 답변이 가능할 듯 합니다.
그외에
표준프레임워크에서 제공하는 공통컴포넌트를 참고하시면 도움이 되실듯 합니다.
감사합니다.
표준프레임워크센터 입니다.
커스텀 코드에 대해 문의시
다양한결과와 변수가 있기 때문에 답변에 제한이 있습니다.
질문 1번의 경우 해당 부분이 javascript로 보이는데요.
"abc".replaceAll("b",'"')와 같이 ''기호를 사용하시면 될듯 합니다.
질문2,3의 경우 커스텀된 코드 레벨이라
정확한 답변이 어려울듯 합니다.
저희가 제공하는 소스를 예시로 하여 문의를 주시는 식으로
범위를 줄여주시면 답변이 가능할 듯 합니다.
그외에
표준프레임워크에서 제공하는 공통컴포넌트를 참고하시면 도움이 되실듯 합니다.
감사합니다.