662452
240
2019-04-02 13:41:06 작성 2019-05-22 10:54:21 수정됨
8
2025

자바 JSON -> XML 변환 한 값을 VO에 어떻게 담나요?




ResVO ResVo = new ResVO();
try {
       result = oJSONResponse.toString();
	        
	        System.out.println("Controller Response : " + result);
	        
	        JSON json = JSONSerializer.toJSON( result );  
	        XMLSerializer xmlSerializer = new XMLSerializer();  
	        xmlSerializer.setTypeHintsCompatibility( false );  
	        String xml = xmlSerializer.write( json );
	        
	        System.out.println("Controller Response To XML" + xml); 

                ResVo = xml; 오류

}catch(Exception e){

{
return ResVo;

안녕하세요. JSON -> XML로 변환해서 VO 에 담아 리턴하려고 합니다.

 XML 형식의 String 로 변환하긴 했는데, XML 이 한줄로 나와서 VO 에 담아 VO를 리턴하려고 합니다. 


0
  • 답변 8

  • redeye0922
    1k
    2019-04-02 14:21:04

    질문1. xml 파싱해서 받아온 값을 왜 json으로 변경하려고하나요?

    질문2. ajax dataType을 xml로 해서 바로 받으면 안될까요?

  • jeroschoi
    62
    2019-04-02 14:25:04

    소스 내용을 봐서는 XML 로 파싱이 아니라 변환인거 같네요 JSON 에서 => XML 로 변환인거고

    변환된 XML을 Parsing 하는건 다시 해야합니다. (DOM, JDOM, XPATH 등 여러 Library 검색하시면 됩니다.)

    추가 질문에 대해서는 Json => XML 변환을 해주는 library 특성으로 보여지네요 아니면 실제 변환전 JSON 데이터를 확인 해봐야 할 것 같습니다. 만약 그 library 특성이라면 해당 Lib에서 API를 제공해주지 않으면 지울수 없을 겁니다.

  • 662452
    240
    2019-04-02 14:31:37

    댓글 달아주셔서 감사합니다. 제가 변환과 파싱 용어에 대한 정의가 명확하지 못했네요. (글 내용 및 제목 수정하겠습니다.)

    해당 소스를 작성한 목적은 json으로 받은 값을 xml로 변환해서 보내주려고 합니다. 

    xml로 변환 된 값을 vo에 담고 싶은데 잘 안되네요 .. 
    말씀해주신 내용대로 확인해서 다시 해보겠습니다. 감사합니다 !


  • 662452
    240
    2019-04-02 14:36:59 작성 2019-05-22 10:37:06 수정됨

    redeye0922 댓글달아주셔서 감사합니다.

    서로 다른 시스템에서 RESTful 방식을 통해 요청/응답 정보를 보내주고 있습니다.

    요청 시스템에서 XML로 데이터를 보내주면 

    처리해주는 시스템에서 JSON으로 변환해서 조회 로직을 수행하고

    결과를 XML로 다시 변환하여 보내주려고 합니다.

  • redeye0922
    1k
    2019-04-02 14:58:42

    제가 이해한것이 맞는지 모르겠지만

    xml로 요청이 들어온 데이터를 json으로 변환하여 보여주고

    json데이터를 xml로 변환하여 타시스템에 보내야하는 상황인것같은데

    아래 블로그 참조해보세요.


    json to xml, xml to json 처리

    https://m.blog.naver.com/yandul83/220432077444

    xml은 outputstream으로 보내는 방법은

    https://pandorica.tistory.com/12


  • 662452
    240
    2019-04-02 15:35:26 작성 2019-05-22 10:56:23 수정됨

    redeye0922 님 감사합니다. 

    저 한가지만 더 여쭤봐도 될까요?

    xml로 담긴 값을 vo로 담고 싶은데 type이 맞지 않다고 하며 빨간 밑줄이 생깁니다. 

    타입을 어떻게 맞춰야 하나요? .. 

  • redeye0922
    1k
    2019-04-02 15:46:07 작성 2019-04-02 15:48:21 수정됨

    당연히 오류나겠네요

    정확히는 위 소스 사용을안해봐서 모르겠으나 result는 String값일것이고

    JSON json = JSONserializer.toJSON(result);

    를 통해서 json으로 형태로 변환을 시키셨겠네요

    그럼 현재 JSON 형태의 데이터를 xml에 담아 보내면 되는것아닌가요?

    구지 vo에 담는 행위를 해야할 이유가 무엇인가요?

    일단 try catch return되어있느거봐선 함수하나 만드시려고그런것같고 vo로 리턴하네요

    그럼 json 객체를 vo에 담으면되는거죠.

    위 코드 해석해보면 vo = String 이라고 하신거에요 당연히 오류나죠

    ResVo <-- 무슨 오브젝트인진모르겠지만 object = String 이아니잔아요?


  • 662452
    240
    2019-04-02 16:10:33

     

    redeye0922 감사합니다  많이 부족한데 덕분에 도움 많이 됐습니다. 


  • 로그인을 하시면 답변을 등록할 수 있습니다.