如何将JsonArrayString
转换为List<String>
或String[]
?我试图用Gson来掩饰它,但我失败了。也许我忽略了一些可以做到这一点的现有方法?任何其他更好的方法来制作它或者有人可以给我一些提示吗?
[
{
"test": "test"
},
{
"test": "test"
},
{
"test": "test",
"test2": "test2",
"test3": [
{
"test": "test"
},
{
"test": "test"
}
]
}
]
答案 0 :(得分:0)
我猜你不知道该值是JSONObject还是JSONArray。在这种情况下,您可能希望使用Map和Object作为Value(未经测试)。
class Model {
private Map<String, Object> test;
}
请注意,您必须使用(例如)验证Value是JSONArray还是JSONObject:
if (this.getTest().getValue() instanceof JSONObject.class) { ... }
答案 1 :(得分:0)
我终于找到了解决方法:
// Converting JSON String array to Java String array
String jsonStringArray = "[{\"test\":\"test1\"},{\"test\":\"test2\"},{\"test\":\"test3\",\"test2\":[{\"test\":\"test1\"},{\"test\":\"test2\"}]}]";
// creating Gson instance to convert JSON array to Java array
Gson converter = new Gson();
Type type = new TypeToken<List>() {
}.getType();
List list = converter.fromJson(jsonStringArray, type);
// convert List to Array in Java
System.out.println("Java List created from JSON String Array - example");
System.out.println("JSON String Array : " + jsonStringArray);
System.out.println("Java List : " + list);
// let's now convert Java array to JSON array -
String toJson = converter.toJson(list);
System.out.println("Json array created from Java List : " + toJson);
输出:
Java List created from JSON String Array - example
JSON String Array : [{"test":"test1"},{"test":"test2"},
{"test":"test3","test2":[{"test":"test1"},{"test":"test2"}]}]
Java List : [{test=test1}, {test=test2}, {test=test3, test2=[{test=test1}, {test=test2}]}]
Json array created from Java List : [{"test":"test1"},{"test":"test2"},{"test":"test3","test2":[{"test":"test1"},{"test":"test2"}]}]