Десериализация объекта 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.