1、首先引入相关的jar包(gson、JSONObject、JSONArray)
点我下载
2、编写代码
public class Test {
public static void main(String[] args) {
//String转换成JSONArray
String test="[{\"name\":\"john\",\"age\":\"22\",\"className\":\"mca\"},{\"name\":\"zhang\",\"age\":\"23\",\"className\":\"nima\"}]";
JsonParser parser = new JsonParser();
JsonElement tradeElement = parser.parse(test);
JsonArray jsonArray = tradeElement.getAsJsonArray();
JSONArray jsonArray1 = JSONArray.fromObject(test);
System.out.println("data="+jsonArray);
System.out.println("data="+jsonArray1);
//JSONArray转换成List<Map>
Iterator it = jsonArray1.iterator();
List<Map> result = new ArrayList<Map>();
while(it.hasNext()) {
//将每一个jsonArray转换成字符串
String ja = it.next().toString();
//将每一个字符串转换为JSONObject
JSONObject jo = JSONObject.fromObject(ja);
Map map = jo;
result.add(map);
}
//将得到的list遍历出来
it = result.iterator();
while(it.hasNext()) {
Map m = (Map)it.next();
System.out.println(m.get("name"));
}
}
}
3、查看控制台输出结果
4、引用场景
在移动应用开发中 ,前端和后端之间交流的数据格式通常是使用json字符串,有时前端需要提供json数组给后端,而后端收到的json数组仅仅是字符串格式,并不是真正的JsonArray对象,需要将字符串对象解析成真正的JsonArray对象则需要用到上述方法。
同样,在移动端难免会收到服务器端提供的JsonArray字符串,移动端也需要将JsonArray字符串解析成List<Map>后才可以通过操作集合中的map来获取相应的键-值对数据。