Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将JsonArrayString转换为列表<;字符串>;或字符串[]_Java_Json - Fatal编程技术网

Java 将JsonArrayString转换为列表<;字符串>;或字符串[]

Java 将JsonArrayString转换为列表<;字符串>;或字符串[],java,json,Java,Json,如何将JsonArrayString转换为List或String[]?我试图用Gson来掩盖它,但失败了。也许我忽略了一些可以做到这一点的现有方法?还有其他更好的方法吗?或者有人能给我一些建议吗 [ { "test": "test" }, { "test": "test" }, { "test": "test", "test2": "test2", "test3": [

如何将
JsonArrayString
转换为
List
String[]
?我试图用Gson来掩盖它,但失败了。也许我忽略了一些可以做到这一点的现有方法?还有其他更好的方法吗?或者有人能给我一些建议吗

[
    {
        "test": "test"
    },
    {
        "test": "test"
    },
    {
        "test": "test",
        "test2": "test2",
        "test3": [
            {
                "test": "test"
            },
            {
                "test": "test"
            }
        ]
    }
]

我猜您不知道该值是JSONObject还是JSONArray。在这种情况下,您可能希望像这样使用贴图和对象作为值(未测试)


我终于找到了解决问题的方法:

    // 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);

请在验证您的json数据后参考此信息,我曾经错误地设置了类型,我应该是List而不是List
if (this.getTest().getValue() instanceof JSONObject.class) { ... }
    // 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"}]}]