我正在学习使用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] 删除。
我来说两句