我得到以下JSON输出:
{
"range": "Frontpage!E6:E15",
"majorDimension": "ROWS",
"values": [
[
"FundRequest"
],
[
"nOS"
],
[
"NEX"
],
[
"DREP"
],
[
"ChromaWay"
],
[
"Jura"
],
[
"Origo"
],
[
"Phantasma"
],
[
"NuCypher"
],
[
"Oasis Labs"
]
]
}
所以我创建了以下包装:
public class Wrapper {
private String range;
private String majorDimension;
private List<String> values;
// getters and setters
}
现在,我想使用GsonBuilder
将JSON映射到我的对象:
Gson gson = new GsonBuilder().create();
Wrapper w = gson.fromJson(jsonString, Wrapper.class);
但出现以下错误:
java.lang.IllegalStateException: Expected a string but was BEGIN_ARRAY at line 1 column 37 path $.values[0]
我该如何解决?我有什么办法可以将其从List<List<String>>
转换为List<String>
?
答案 0 :(得分:3)
首先,您应该使用列表add_filter('rest_hotel_query', function($args, $request){
$myid = $request->get_param('myid');
if (!empty( $myid))
{
$args['meta_query'] = array(
array(
'key' => 'myid',
'value' => $myid,
'compare' => '=',
)
);
}
return $args;
}, 10, 2 );
而不是 add_filter('rest_hotel_collection_params', function ($valid_vars){
return array_merge($valid_vars, array('myid', 'meta_query'));
});
作为值。
第二秒,您可以使用以下代码从List<<List<String>>
获得List<String>
,
List<String>
或使用Java-8
List<List<String>>
此外,在GSON中进行搜索是否有任何内置的方法来展平嵌套的集合。如有任何内容,请在此处发布。