Десериализация объекта json из запроса SPARQL по ошибке gson

У меня проблема с десериализацией объекта json, поступающего из DBpedia по запросу sparql. я использую gson для десериализации и использовал этот инструмент для генерации класса объекта: jsongen.byingtondesign.com

вывод JSON URL-адреса запроса sparql: http://goo.gl/b4oF1

или: http://labs.tedux.com/sparqlDONE.json

когда я использовал сгенерированные классы внутри Android SDK, я получил ошибку в одном из них из-за этого:

 {
    type: "literal",
    xml:lang: "en",......

поэтому я удалил этот xml:lang из класса, но когда я попытался десериализовать объект с помощью gson, я получил десериализованный весь объект json, ожидающий описание класса. у вас есть идея, чтобы иметь возможность десериализовать его??


Описание класса:

import java.util.List;

public class Description{
private String type;
private String value;
private String xml:lang;

public String getType(){
    return this.type;
}
public void setType(String type){
    this.type = type;
}
public String getValue(){
    return this.value;
}
public void setValue(String value){
    this.value = value;
}
public String getXml:lang(){
    return this.xml:lang;
}
public void setXml:lang(String xml:lang){
    this.xml:lang = xml:lang;
}
}

2 ответа

Ваш класс Java не будет компилироваться, так как двоеточие не является допустимым синтаксисом.

Основной проблемой был исходный json... Двоеточия не могут быть допустимыми в качестве имен свойств в json.

Поэтому вы должны изменить свой JSON, чтобы он выглядел так:

{
    type: "literal",
    xmllang: "en"
}

Затем восстановите ваши файлы классов.

Я справился с этим, сделав PHP Webservice, и теперь я просто запрашиваю свои Web-сервисы, чтобы получить настроенный объект Json для моего приложения для Android.

Другие вопросы по тегам