2017-11-10 9 views
-2

Jackson ObjectMapper readTree api를 사용하여 구문 분석하는 동안 문제를 일으키는 다음 형식의 문자열이 나타납니다. 코드가 지정된 String가 구문 분석하는 데 사용문자열을 Java에서 유효한 JSON 형식으로 변환하는 방법

ObjectMapper objectMapper = new ObjectMapper(); 
objectMapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true); 
objectMapper.configure(JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER, true); 
objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true); 
objectMapper.configure(JsonParser.Feature.ALLOW_COMMENTS, true); 
objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true); 
JsonNode rootNode = objectMapper.readTree(inputString); 
는 "7"을 발견하면 그것은
{ 
OBJECT_CONVERSION_ERROR:"Failed..." 
Portal:{ 
    7061:"User is....."} 
} 

문자열

아래의 방법 JAVA를 사용하여 유효한 JSON 형식으로 이러한 문자열을 변환하는에 예외를 던지고있다

? 내가 내 예외 메시지

org.codehaus.jackson.JsonParseException을 잭슨 - 모든-1.9.11.jar 아래

이다 사용하고 있습니다 : 예기치 않은 문자 ('7'(코드 55)) : 기다리고 있었다 중 유효 필드 이름을 시작하기 위해 이름 문자 (인용되지 않은 이름의 경우) 또는 큰 따옴표 (인용)의 경우 [출처 : [email protected]; 1, 열 : 1433]

구문 분석을 위해 Object Mapper에 전달하기 전에 올바른 json 형식으로 입력 된 String을 변환 할 수있는 방법이 있습니까?

+0

당신은 오류가 발생합니다 코드 발췌을 업로드 할 수 있습니다 :

다음 작업을 수행 할 수있는이 동작을 변경하려면? 최소한 코드를 보지 않고 어떤 일이 벌어지고 있는지를 말하는 것은 불가능합니다. – mammago

+2

javascript 객체처럼 보이지만 유효한 JSON이 아닙니다 ... – Zircon

+0

표시되는 값이 입력 문자열이면 이름 - 값 쌍의 이름이 7061과 같은 숫자가 아닌 문자열이어야하므로 유효한 JSON이 아닙니다. –

답변

0

잭슨 ObjectMapper는 기본 구성으로 이중 인용 필드 이름을 기대하고있다.

ObjectMapper mapper = new ObjectMapper(); 
mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true); 
+0

아니요 작동하지 않습니다. –

관련 문제