Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/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中使用JSON.simple将JSON字符串转换为数组_Java_Arrays_Json - Fatal编程技术网

如何在java中使用JSON.simple将JSON字符串转换为数组

如何在java中使用JSON.simple将JSON字符串转换为数组,java,arrays,json,Java,Arrays,Json,我有一个对象数组的字符串表示。如何使用JSON.simple获取该字符串并创建对象的Java数组?刺的形状如下所示: String info = [ { "name": "name", "title": "Name", "type": "String", "maxLength": 100, "minLength": 0, "required": true }, {

我有一个对象数组的字符串表示。如何使用JSON.simple获取该字符串并创建对象的Java数组?刺的形状如下所示:

 String info = [
    {
        "name": "name",
        "title": "Name",
        "type": "String",
        "maxLength": 100,
        "minLength": 0,
        "required": true
    },
    {
        "name": "eMail",
        "title": "E-mail",
        "type": "String",
        "maxLength": 100,
        "minLength": 0,
        "required": false
    }
]


不幸的是,我不允许使用GSON,这将使此解决方案更容易。

如果您想将If作为Java对象,我建议使用Jackson ObjectMapper

    String jsonCarArray =
        "[{ \"color\" : \"Black\", \"type\" : \"BMW\" }, { \"color\" : \"Red\", \"type\" : \"FIAT\" }]";
    List<Car> listCar = objectMapper.readValue(jsonCarArray, new TypeReference<List<Car>>(){});
String jsonCarArray=
“[{\'color\':\'Black\',\'type\':\'BMW\',{\'color\':\'Red\',\'type\':\'FIAT\'}]”;
List listCar=objectMapper.readValue(jsonCarArray,new TypeReference(){});
参考这个
可能会对您有所帮助。

首先,字符串变量需要转义双引号,如下所示:

    String info = "[ {\"name\": \"name\",\"title\": \"Name\",\"type\": 
    \"String\",\"maxLength\": 100,\"minLength\": 0,\"required\": true }, 
    {\"name\":: \"eMail\",\"title\": \"E-mail\",\"type\": \"String\",\"maxLength\": 
    100,\"minLength\": 0,\"required\": false}]";  
您可以解析字符串并将结果转换为JSONArray类型,然后遍历JSONArray并将数据保存到Java数组中

    Object obj = parser.parse(info);
    JSONArray infoJsonArray = (JSONArray) obj;

    // save to a java array
    List<JSONObject> objAry = new ArrayList<>();
    Iterator iter = infoJsonArray.iterator();
    while(iter.hasNext()){
        JSONObject o = (JSONObject) iter.next();
        objAry.add(o);
    }

    System.out.println(objAry.get(0).toString()); // {"minLength":0,"name":"name","title":"Name","type":"String","maxLength":100,"required":true}
    System.out.println(objAry.get(1).get("name")); // eMail
    }
objectobj=parser.parse(info);
JSONArray infoJsonArray=(JSONArray)obj;
//保存到java数组
List objAry=new ArrayList();
迭代器iter=infoJsonArray.Iterator();
while(iter.hasNext()){
JSONObject o=(JSONObject)iter.next();
添加(o);
}
System.out.println(objAry.get(0.toString());//{“minLength”:0,“name”:“name”,“title”:“name”,“type”:“String”,“maxLength”:100,“required”:true}
System.out.println(objAry.get(1.get(“name”));//电子邮件
}

您能提供您的代码吗?如果您还没有开始编码,我建议您找到一个教程,如下所示:这是中期项目。我将json字符串存储在数据库中,我需要提取该字符串并将其解析为java对象。以便在将用户输入存储到数据库之前验证长度和其他要求。我必须使用JSON.simple,不使用Jackson或GSON。我还有其他部分,只是不能将字符串化数组更改为java数组。您仍然需要提供足够的代码来复制您的问题,以便对其进行适当修改。不幸的是,我必须使用JSON.simple或org.JSON.JSONArray库。否则我会使用GSON,它只需几行代码就可以解决这个问题