如何从Java中的多层数组获取特定值

红巨人

我正在学习使用Java来解析PHP脚本返回的JSON feed。

供稿示例:

{"specification":{"result":{"feature":[{"name":"attribute A","value":"50"}]}}}

gson用于该任务,但正在努力从对象数组访问特定值。例如,我想attribute A在数组“功能”的第一个对象中获得“名称”的值但是,我收到一个“名称无法解析或不是字段”错误。

    public static String show() throws Exception {

        String json = Json.fetch("http://somthing.json");

        Gson gson = new Gson(); 

        Model result = gson.fromJson(json, Model.class);

        return result.specification.get("result").feature[0].name; //Error : name cannot be resolved or not a field
    }

这是我上的整个课程:

 public class Item {

    static class Model{
        HashMap <String,Item.Data> specification;
    }

    static class Data{
        ArrayList <Item.Attribute> feature[];
    }

    static class Attribute{
        String value;
        String name;
    }

    public static String show() throws Exception {

        String json = Json.fetch("http://somthing.json");

        Gson gson = new Gson(); 

        Model result = gson.fromJson(json, Model.class);

        return result.specification.get("result").feature[0].name;

    }

}

谁能告诉我如何获得名字attribute A谢谢你。

安迪

控制成员访问权限的文档可能会很有用。如果您不了解此问题,则该问题并不明显。

编辑:

我将保留原始答案,但是在这种情况下,这不是您的问题。我对GSON不太熟悉,但似乎result.specification.get("result").feature[0]不是您所想。它是的ArrayList Attribute因此,添加get(0).name应该可以解决问题。话虽这么说,如果那不是您要尝试做的事情,那么您可能必须重新评估您的结构。您可以在GSON docs上进行有关如何执行此操作的研究:)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章