org.json.JSONArray转换为int数组

2023-12-09 10:58

本文主要是介绍org.json.JSONArray转换为int数组,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先,org.json.JSONArray转换为数组这一需求相信很多人是遇不到的,我也是脑抽了才有这个需求,先讲一下为啥我会有这个需求吧;
我在写java后台,前后台数据传输用的json格式,前台传给后台的一个参数值的格式是数组,后台取到的数据格式就是JSONArray ,然后我需要这个数组为参数使用mybatis进行数据库查询,因为是第一次写,就直接把查询条件的参数写成了数组,然后又懒得改(其实,也想知道应该怎么转换,毕竟好奇心太重),所有我需要把前台传给我的JSONArray转行成java数组,于是我就有了这个需求;以后数据库查询的集合参数尽量使用List,或者是Map(我在找mybatis使用集合作为参数进行数据库查询的方法的时候,还非常纳闷,为啥都是List,Map,很少有array,现在知道了);
org.json.JSONArray转换为数组,有两种思路,第一种是把JSONArray转换成字符串,然后把字符串转换为数组,第二种是把JSONArray转换成List,然后把List转换为数组
第一种思路的实现:

      JSONObject req = new JSONObject(URLDecoder.decode(str, "UTF-8"));//org.json.JSONArray不能直接转化为数组,尝试先转string,再转array;String str1 = req.get("analysisItemId").toString();//正常情况下,JSONArray很少转化为数组,//此处字符串比正常数组多出一对[],要先去除;String str2 = str1.substring(1);String idsStr = str2.substring(0,str2.length()-1);String[] idsStrArray = idsStr.split(",");int[] ids = new int[idsStrArray.length];  for(int i=0; i < idsStrArray.length; i++){  ids[i] = Integer.parseInt(idsStrArray[i]);  }

第二种思路的实现:
这里没有使用List的toArray()方法,是因为该方法只能用于Object数组,不能用于int[];

      JSONObject req = new JSONObject(URLDecoder.decode(str, "UTF-8"));JSONArray idsJSONArray = (JSONArray) req.get("analysisItemId");//org.json.JSONArray没有toArray()方法,但是有toList()方法List idsList = (List) idsJSONArray.toList();int[] ids = new int[idsList.size()]; for(int i = 0;i<idsList.size();i++){ids[i] = (Integer) idsList.get(i); }

org.json.JSONArray提供了toList()方法,但是没有提供toArray()方法;

这里的JSONArray前面一直加了org.json,是因为还有一个库的JSONArray是有toArray方法的,加个前缀,以示区别;

这篇关于org.json.JSONArray转换为int数组的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/473529

相关文章

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

C#下Newtonsoft.Json的具体使用

《C#下Newtonsoft.Json的具体使用》Newtonsoft.Json是一个非常流行的C#JSON序列化和反序列化库,它可以方便地将C#对象转换为JSON格式,或者将JSON数据解析为C#对... 目录安装 Newtonsoft.json基本用法1. 序列化 C# 对象为 JSON2. 反序列化

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定

Java报错:org.springframework.beans.factory.BeanCreationException的五种解决方法

《Java报错:org.springframework.beans.factory.BeanCreationException的五种解决方法》本文解析Spring框架中BeanCreationExce... 目录引言一、问题描述1.1 报错示例假设我们有一个简单的Java类,代表一个用户信息的实体类:然后,

Java中数组与栈和堆之间的关系说明

《Java中数组与栈和堆之间的关系说明》文章讲解了Java数组的初始化方式、内存存储机制、引用传递特性及遍历、排序、拷贝技巧,强调引用数据类型方法调用时形参可能修改实参,但需注意引用指向单一对象的特性... 目录Java中数组与栈和堆的关系遍历数组接下来是一些编程小技巧总结Java中数组与栈和堆的关系关于

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

详解MySQL中JSON数据类型用法及与传统JSON字符串对比

《详解MySQL中JSON数据类型用法及与传统JSON字符串对比》MySQL从5.7版本开始引入了JSON数据类型,专门用于存储JSON格式的数据,本文将为大家简单介绍一下MySQL中JSON数据类型... 目录前言基本用法jsON数据类型 vs 传统JSON字符串1. 存储方式2. 查询方式对比3. 索引