[英]How to get a specific value from a multi-layer array in 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]
不是您所想的。 它是Attribute
的ArrayList。 因此,添加get(0).name
应该可以解决问题。 话虽如此,如果那不是您要尝试的工作,那么您可能必须重新评估您的结构。 您可以在GSON文档上进行有关如何执行此操作的研究:)。
Specification.result.feature。[0]
会给你
[{“名称”:“属性A”,“值”:“ 50”}]
这是一个只有一个元素的数组。
现在
specification.result.feature。[0] .name将为您提供属性A
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.