3

我在通过 sparql 查询反序列化来自 DBpedia 的 json 对象时遇到问题。我正在使用 gson 对其进行反序列化并使用此工具生成对象类:jsongen.byingtondesign.com

sparql 查询 url 的 JSON 输出: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;
}
}
4

2 回答 2

1

您的 java 类将无法编译,因为冒号不是有效的语法。

主要问题是原始 json ......冒号在 json 中也不能作为属性名称。

因此,您应该将 json 更改为如下所示:

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

然后重新生成你的类文件。

于 2012-04-24T05:17:30.610 回答
0

我通过制作一个 PHP Web 服务来克服这个问题,现在我只需查询我的 Web 服务来为我的 android 应用程序获取一个自定义的 Json 对象。

于 2012-02-19T13:43:44.457 回答