десериализация объекта json из запроса SPARQL по ошибке gson - PullRequest
3 голосов
/ 17 февраля 2012

У меня проблема с десериализацией объекта 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 ]

1 голос
/ 24 апреля 2012

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

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

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

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

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

0 голосов
/ 19 февраля 2012

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

...