2013-04-26 5 views
0

Я получаю поток json и пытаюсь свалить его на карту с помощью jackson. Ниже приведен синтаксис JSON я получаю:jackson parser exception: неожиданный Персонаж

M1{"id":"2345","results":"2"} 
R1{"Title":"Titanic","country":"US"} 
R2{"Title":"Avatar","country":"US"} 

Теперь у меня есть ниже код, чтобы разобрать этот поток в Джексоне парсер:

 ObjectMapper mapper = new ObjectMapper(); 
    InputStreamReader stream = new InputStreamReader(
       urlConn.getInputStream(),org.apache.commons.lang.CharEncoding.UTF_8); 
     Map<String,Object> result = mapper.readValue(stream, new TypeReference<Map<String,Object>>() { }); 

Я вижу ниже EROR:

Unexpected character ('M' (code 77)): expected a valid value (number, String, array, object, 'true', 'false' or 'null') 
at [Source: [email protected]; line: 1, column: 2] 

Я хочу поставить каждый из двух результатов json на две карты. Я не могу изменить структуру json.

может кто-нибудь объяснить, как заставить его работать.

+1

Ваши входящие данные не являются JSON (даже если они содержат элементы JSON). Вам придется предварительно обработать поток. – Perception

ответ

2

Is Not JSON:

M1{"id":"2345","results":"2"} 
R1{"Title":"Titanic","country":"US"} 
R2{"Title":"Avatar","country":"US"} 

Является ли JSON:

[{"key"="M1","id":"2345","results":"2"}, 
{"key"="R1","Title":"Titanic","country":"US"}, 
{"key"="R2","Title":"Avatar","country":"US"}] 

Я не уверен, что точно соответствует тому, что ваши данные должны быть, но это, как вы бы представлять массив объектов. Если вы собираетесь использовать парсер JSON, вам нужно убедиться, что то, что вы анализируете, на самом деле является JSON.

Смежные вопросы