2011-10-28 2 views
1

Java에서 jsonlib를 사용하여 JSON 문자열을 XML로 변환하려고합니다. 내가 할jsonlib을 사용하여 JSON에서 XML로 변환하는 중에 문자가 올바르지 않습니다.

JSONObject json = JSONObject.fromObject(jsonString); 
    XMLSerializer serializer = new XMLSerializer(); 
    String xml = serializer.write(json); 
    System.out.println(xml); 

오류는 여기에서 문제는 내가 잘못된 XML 문자입니다 내 JSON에서 일부 속성을 가지고있다

nu.xom.IllegalNameException: 0x24 is not a legal NCName character 

입니다. 예. "$ t"라는 속성이 있습니다. XMLSerializer는 XML 태그 이름에 $를 사용할 수 없으므로이 이름에 XML 태그를 만들려고 할 때 예외를 throw합니다. 거기에 serializer에 의해 수행 된이 XML 잘 형성 검사를 재정의 할 수있는 방법이 있습니까?

+0

왜 체크를 무시하고 잘못된 xml을 생성 하시겠습니까? – jtahlborn

+0

Google REST API를 사용하려고합니다. 웹 서비스를 실행 한 후 JSON 응답을받습니다. 트리 구조에 XML을 표시하는 트리 뷰어가 있습니다. 따라서 JSON을 XML로 변환하여 트리로 표시해야합니다. 하지만 JSON에서 "$"는 유효한 속성 이름입니다. Google API는 "$ t", "gCal $ timesCleaned"등의 속성 이름을 반환하므로 XML로 변환 할 때 오류가 발생합니다. –

답변

0

먼저 내가 사용하고있는 언어를 추가하는 것이 좋습니다 (자바가 맞습니까?).

XML 태그 이름을 검사하여 아무 것도하지 않는 방법을 대체 할 수 있습니다.

0

json-lib XMLSerializer의 스펙을 살펴 보았는데 놀랍게도 유효한 XML 이름이 아닌 JSON 객체를 직렬화하는 옵션이없는 것으로 보입니다. 그렇다면 다른 도서관을 찾아야 할 것입니다.

0

json.keySet (반복적으로 필요한 경우)을 반복하고 유효하지 않은 키를 유효 문자로 바꿀 수 있습니다 (removeadd 사용).

관련 문제