[英]GSON - How to only return a list of a certain subobject?
我正在使用API获取应用程序的数据。 我使用GSON解析JSON数据,因此出现了类似以下情况:
List
obj
double
movie
...
obj
double
movie
...
...
double值用于加权电影的顺序。 但是,我对此并不感兴趣,而是看起来像是电影的简单清单:
List
movie
...
movie
...
...
我能想到的唯一解决方案是,首先将其解析为obj列表,然后使用循环将电影对象复制到新列表,但是我希望您可以教给我一种更好的方法。 您有什么建议?
我似乎记得,给您的字段一个transiental关键字应该可以解决问题:
private transient double value;
这应该将其排除在序列化之外。
您可以将JsonPath库与JSONExpression
一起使用,以从JSON
提取所需的元素。 例如在json以下的情况:
[{
"test": 1,
"test1": "value1"
},
{
"test": 1,
"test1": "value2"
}]
如果要获取test1
元素的所有值,则可以使用$[*].test1
JSONExpression
来获取value1
和value2
。 请参阅下面的Java示例:
public static void main(String[] args) {
Object value = JsonPath.read("[{ \"test\": 1, \"test1\": \"value1\"},{ \"test\": 1, \"test1\": \"value2\"}]", "$[*].test1");
System.out.println(value);
}
这是一个不错的网站,可以即时测试JSON
表达式。
* 编辑 * Maven对JsonPath的依赖:
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<version>2.0.0</version>
</dependency>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.