Java Vert.x Json.decodeValue列表
有人知道如何在vert.x中将json字符串解码为Java Vert.x Json.decodeValue列表,java,json,list,decode,vert.x,Java,Json,List,Decode,Vert.x,有人知道如何在vert.x中将json字符串解码为List 您可以使用Json.decodeValue(data,Foo.class)轻松地将字符串转换为对象但我似乎不知道如何在列表的情况下这样做 到目前为止,我已经通过Json.decodeValue(data,List.class)获得了数据但是除了打印出来,你不能对结果做任何事情。Json类使用Jackson来解码字符串 我建议您使用Foo[]而不是列表。如果您确实需要一个列表,您可以轻松地创建一个“Arrays.asList(arr)”
List
您可以使用Json.decodeValue(data,Foo.class)轻松地将字符串转换为对象代码>但我似乎不知道如何在列表的情况下这样做
到目前为止,我已经通过Json.decodeValue(data,List.class)获得了数据代码>但是除了打印出来,你不能对结果做任何事情。Json类使用Jackson来解码字符串
我建议您使用Foo[]而不是列表。如果您确实需要一个列表,您可以轻松地创建一个“Arrays.asList(arr)”
或者您可以使用此站点上的一个示例:您必须声明一个容器对象,但除此之外,它非常简单:
// This is your Foo
public class MyObj {
public String key;
// Just for clarity
@Override
public String toString() {
return "MyObj{" +
"key='" + this.key + '\'' +
'}';
}
}
// This is the container
public class MyArray {
// Property is mandatory in this case
@JsonProperty("objs")
List<MyObj> objs;
}
试试这个
List-doulist=Json.decodeValue(bodyAsString,new-TypeReference(){})代码>
TypeReference是Jackson的参考资料我不得不使用Gson.fromJson
API作为列表。
public static void main(final String[] args) {
// Your input is a JSON array, not a JSON object
final String input = "[{\"key\":\"a\"}, {\"key\":\"b\"}, {\"key\":\"c\"}]";
// We format it to be a JSON object, so we can parse it
final MyArray res = Json.decodeValue(String.format("{\"objs\":%s}", input), MyArray.class);
// Get your List out
System.out.println(res.objs);
}