第一个方法,强制转换:

 Object s = JSONArray.parseArray();
 for(List<List<Double>> l:(List<List<List<Double>>>)s){
           for(List<Double> l1:l){
               System.out.println(l1.get(0));

第二种方法 利用Gson

Gson gson = new Gson();
Type type = new TypeToken<ArrayList<ArrayList<ArrayList<Double>>>>(){}.getType();
ArrayList<ArrayList<ArrayList<Double>>> a = gson.fromJson(s), type);
Double c = a.get(0).get(0).get(0);

第三个最简单的:

String s = jedis.hget();
JSONArray lis = JSONArray.parseArray(s);
System.out.println(((JSONArray)lis.get(0)).get(0));
今天碰到一个问题,记录一下需要解析json字符串数组中的数组中的数组,三层嵌套[ [ [1,2], [2,3] ] ]第一个方法,强制转换: Object s = JSONArray.parseArray(); for(List&lt;List&lt;Double&gt;&gt; l:(List&lt;List&lt;List&lt;Double&gt;&gt;&gt;)s){ for(List&lt;Double&gt; l1:l){ . public static void main(String[] args) { String str="{ \"head\":{\"snd_time\":\"20151020234832\",\"snder\":\"S\"} ,\"body\":{\"app_id\":\"APP002\",\"records\":[{\"excp_stat\":\"0\",\"fields\":[{\"req_time\":\"20140828000312\",\"tran_date\":\"121226\"}]}]} }"; System.out.println(str); /*普通数据生成json数组*/ boolean[] boolArray = new boolean[]{true,false,true}; JSONArray jsonArray1 = JSONArray.fromObject( boolArray ); System.out.println( jsonArray1 ); // prints [true,false,true] /*List生成json数组*/ List list = new ArrayList(); list.add( "first" ); list.add( "second" ); JSONArray jsonArray2 = JSONArray.fromObject( list ); System.out.println( jsonArray2 ); // prints ["first","second"] /*String生成json数组*/ JSONArray jsonArray3 = JSONArray.fromObject( "['json','is','easy']" ); System.out.println( jsonArray3 ); // prints ["json","is","easy"] /*Map生成json*/ Map<Object, Object> map = new HashMap<Object, Object>(); map.put("name", "Ren"); map.put("sex", "man"); map.put("age", 24); JSONObject obj = JSONObject.fromObject(map); System.out.println(obj); //输出结果{"sex":"man","age":24,"name":"Ren"} /*嵌套生成json*/ JSONArray jsonArr = new JSONArray(); JSONObject jsonObj = new JSONObject(); for (int i = 1; i <= 3; i++) { JSONObject tjo = new JSONObject(); tjo.put("optValue", i+""); tjo.put("optText", i+"Text"); jsonArr.add(tjo); jsonObj.put("options", jsonArr); System.out.println(jsonObj); //输出结果 {"options":[{"optValue":"1","optText":"1Text"},{"optValue":"2","optText":"2Text"},{"optValue":"3","optText":"3Text"}]} /*嵌套生成json*/ JSONObject tobj = new JSONObject(); JSONArray tarr = new JSONArray(); tobj.put("name", "zhangsan"); tobj.put("age", 29); tarr.add(tobj); tarr.add(obj); System.out.println(tarr); //[{"name":"zhangsan","age":29},{"sex":"man","age":24,"name":"Ren"}] tobj.put("other", tarr); System.out.println(tobj); //输出结果 {"name":"zhangsan","age":29,"123":[{"name":"zhangsan","age":29},{"sex":"man","age":24,"name":"Ren"}]} /*json的遍历(单层)*/ String jsonString = tobj.toString(); JSONObject jsonObject = JSONObject.fromObject(str); Iterator keyIter = jsonObject.keys(); while( keyIter.hasNext()) { String key = (String)keyIter.next(); Object value = jsonObject.get(key); System.out.println(key + "--==" + value); /*测试递归遍历json(多层)*/ System.out.println("---------------------------------------------------------"); getJsonValue(str); * 递归遍历json所有子条目 public static String getJsonValue(String json) { if(!json.contains("{") && !json.contains("[") && json.contains(":")) { return json; } else if(json.equals("")){ return json; } else if(json.trim().charAt(0) == '{'){ String value = null; JSONObject jsonObject = JSONObject.fromObject(json); Iterator keyIter = jsonObject.keys(); while( keyIter.hasNext()) { String key = (String)keyIter.next(); value = jsonObject.get(key).toString(); getJsonValue(value); if(!value.contains("{") && !value.contains("[")) { System.out.println(key + " = " + value); return value; } else if(json.trim().charAt(0) == '[') { String value = null; JSONArray jsonArr = JSONArray.fromObject(json); for (int i = 0; i < jsonArr.size(); i++) { value = jsonArr.getJSONObject(i).toString(); getJsonValue(value); if(!value.contains("{") && !value.contains("[")) { System.out.println("----"+value); return value; } else { return "error";
Hive嵌套JSON Arrray UDF 此UDF接收“ JSON字符串”和JSON数组的路径,并收集此路径指定的所有元素(也处理嵌套JSON数组)。 假设此JSON在某些表的行中: " request " : { " user " : " Mario " , " location " : " His house. " , " siblings " : [ " Luigi " ], " countries " : [ " name " : " USA " , " regions " : [ " California " , " New York " , " Washington " ] " name " : " Japan " , " regions " : [ " Tokyo " ,
JSONArray.parseArray()方法 将List转换为JSONArray T为实体类 List<T> list = new ArrayList<T>(); JSONArray array= JSONArray.parseArray(JSON.toJSONString(list)); JSONArray转List RequestDTO为实体类 JSONArray array = new JSONArray(); List<RequestDTO> lis
这个问题在之前做项目时碰到过一次,当时按照网上的做法,去掉JSON.parse()这一层转换后就没有这个报错了,数据也能正常使用,就没多想,也没深究是什么原因。 可是这次又碰到了,所以这次必须要弄明白原因。 报错的原因 因为你要转换的数据本来就是object,JSON.parse()这个方法是把一个字符串解析json对象,你再转换就会报错; 为什么会有这样的错误 因为把Object作为参数传到...
阿里巴巴的 FastJSON 库提供了 `JSONArray` 类型,可以用于解析 JSON 数组。以下是如何使用 `JSONArray` 类型解析 JSON 数组: ```java import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; public class JsonParser { public static void main(String[] args) { String jsonString = "[{\"name\":\"John\", \"age\":30}, {\"name\":\"Mary\", \"age\":25}]"; JSONArray jsonArray = JSON.parseArray(jsonString); for (int i = 0; i < jsonArray.size(); i++) { String name = jsonArray.getJSONObject(i).getString("name"); int age = jsonArray.getJSONObject(i).getIntValue("age"); System.out.println("Name: " + name); System.out.println("Age: " + age); 在上面的代码中,我们定义了一个 JSON 数组,使用 `parseArray` 方法将其解析为 `JSONArray` 对象。然后,使用 `getJSONObject` 方法获取数组中的每一个元素,再通过该元素的键来获取对应的值。 需要注意的是,在获取 JSON 数组中的元素时,要使用 `getJSONObject` 方法获取 JSONObject 对象,再通过该对象来获取对应的值。如果直接使用 `getString` 或 `getIntValue` 方法,会抛出异常。 如果 JSON 字符串中有嵌套JSON 数组,可以使用 `getJSONArray` 方法来获取: ```java import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; public class JsonParser { public static void main(String[] args) { String jsonString = "{\"name\":\"John\", \"age\":30, \"friends\":[{\"name\":\"Mary\", \"age\":25}, {\"name\":\"Tom\", \"age\":35}]}"; JSONObject jsonObject = JSON.parseObject(jsonString); JSONArray friends = jsonObject.getJSONArray("friends"); for (int i = 0; i < friends.size(); i++) { String name = friends.getJSONObject(i).getString("name"); int age = friends.getJSONObject(i).getIntValue("age"); System.out.println("Name: " + name); System.out.println("Age: " + age); 在上面的代码中,我们定义了一个 JSON 字符串,其中有一个名为 `friends` 的 JSON 数组。使用 `getJSONArray` 方法获取该数组,然后可以按照上面的方法访问数组中的元素。
python openpyxl ValueError: Value does not match pattern ^[$]?([A-Za-z]{1,3})[$]?(\d+)(:[$]? 嘿,靓仔。: 补充一个情况。工作表里面某一页sheet,横向或者竖向有无限空值。删除,空行或者空列 保存一下就可以读取了。 python openpyxl 处理Excel 动态插入行、列 m0_71096932: 用xlwings包,兼容性好很多。