2016-08-09 2 views
0

Я пытаюсь использовать Unmarshall JSON для Java Object. Я видел довольно много сообщений, которые говорят о разборе XML. не дублироватьJSON Unmarshalling javax.xml.bind.UnmarshalException: неожиданный элемент (uri: "", local:

Мой Java класс имеет ниже аннотаций

@XmlRootElement(name = "cpResponse") 
public class CPResponse { 

Я использую org.apache.cxf.jaxrs.provider.json.JSONProvider от CXF-RT-RS-расширения-провайдеров - версия - 2.7.3

Я получаю бель вл ошибка

javax.xml.bind.UnmarshalException: неожиданный элемент (Uri: "", местные: "cpResponse")

+1

Предполагаю, что вы используете Jettison, пожалуйста, разместите свой JSON, чтобы увидеть элементы. у вас есть приложение типа контента/json? Кажется, вы получаете XML – pedrofb

+0

Вы правы @ArK. Проблема была в версии Jettison Library 1.3.x. Я понизился до 1,2, и проблема решена. –

ответ

0

Я не в состоянии просмотреть класс Java картографа. Для каждого поля в формате JSON вы хотите карту, определить геттер и сеттер в Java Mapper Class.You может считывать данные из JSON в Java POJO, как показано ниже: Использование ДЖЕКСОНА-DataBind-2.0.0 API вы можете использовать ниже код

ObjectMapper mapper = new ObjectMapper(); 
JsonMapperVO jsonMapperVO = mapper.readValue(jsonString.toString(), JsonMapperVO.class); 
0

Это, вероятно, проблема с пространством имен. Не могли бы вы проголосовать за пространство имен до ""? :

@XmlRootElement(name = "cpResponse", namespace = "") 
public class CPResponse { 
+0

Я пробовал, как вы предлагали, но без изменений. Я получаю такое же исключение. Достаточно ли, если я иду только с клиентской стороны или должен измениться и на стороне сервера @? –

0

Проблема была с версией Jettison Library 1.3.x. Я понизился до 1,2, и проблема решена.

Никаких других изменений кода.

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