如何在java中使用JSON.simple将JSON字符串转换为数组
我有一个对象数组的字符串表示。如何使用JSON.simple获取该字符串并创建对象的Java数组?刺的形状如下所示:如何在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 }, {
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,它只需几行代码就可以解决这个问题