JSONArray 增删改查
时间: 2025-05-29 17:51:22 浏览: 15
### 使用 JSONArray 实现增删改查功能
#### 数据增加
在数据增加的过程中,可以利用 `JSONArray` 的 `add(Object obj)` 方法向数组中添加新的元素。此方法允许将任意类型的对象追加到数组末尾。
```java
// 创建一个新的JSONArray实例
JSONArray jsonArray = new JSONArray();
jsonArray.add("新增的数据项1");
jsonArray.add("新增的数据项2");
log.info("打印新增后的JSONArray: {}", jsonArray.toString());
```
通过这种方式,可以在现有的 `JSONArray` 中动态地添加新数据[^1]。
---
#### 数据删除
对于数据删除的操作,可以通过索引来移除指定位置上的元素。具体来说,使用 `remove(int index)` 方法即可完成该操作。
```java
// 假设已有如下JSONArray
JSONArray jsonArray = JSON.parseArray("[\"原始数据1\", \"原始数据2\"]");
// 删除索引为0的元素
jsonArray.remove(0);
log.info("打印删除后的JSONArray: {}", jsonArray.toString());
```
需要注意的是,在实际应用中可能需要先定位目标元素的位置再执行删除动作[^2]。
---
#### 数据修改
当需要更新某个特定位置上的值时,则可借助于 `set(int index, Object value)` 函数来替换原有内容。
```java
// 修改索引为0处的内容为"修改后的内容"
jsonArray.set(0, "修改后的内容");
log.info("打印修改后的JSONArray: {}", jsonArray.toString());
```
这样就可以轻松实现对现有记录的编辑需求[^3]。
---
#### 数据查询
为了检索存储在 `JSONArray` 内部的具体信息,通常会结合循环结构逐一访问各个成员变量或者直接依据下标获取单个实体。
```java
for (int i = 0; i < jsonArray.size(); i++) {
log.info("第{}条记录:", i + 1);
log.info("{}", jsonArray.getString(i));
}
```
以上代码片段展示了如何遍历整个列表并输出每一条目详情;当然也可以单独提取某一项用于进一步处理[^1]。
---
#### 批量操作示例
如果涉及到更复杂的场景比如批量导入导出等功能开发的话,那么往往还需要考虑到前端交互逻辑设计以及后台服务接口定义等问题。下面给出一个简单的例子说明怎样基于Spring Boot框架配合MySQL数据库完成类似任务:
假设我们有一个名为students的表格用来保存学员档案资料,现在希望通过RESTful API的形式支持客户端上传一组学号从而返回匹配的学生姓名列表。
##### 后端控制器部分
```java
@RestController
@RequestMapping("/api/students")
public class StudentController {
@Autowired
private IStudentService studentService;
/**
* 根据IDs查找学生名称
*/
@PostMapping("/findNamesByIds")
public ResponseEntity<List<String>> findNamesByIds(@RequestBody List<Long> ids){
try{
List<Student> students = studentService.findStudentsByIds(ids);
List<String> names = students.stream()
.map(Student::getName)
.collect(Collectors.toList());
return ResponseEntity.ok(names);
}catch(Exception e){
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
}
```
##### Service层实现细节
```java
@Service
public class StudentServiceImpl implements IStudentService{
@Override
public List<Student> findStudentsByIds(List<Long> ids) throws Exception{
// 调用DAO层的方法...
}
}
```
最后记得配置好相应的Mapper映射关系以便能够正确读取持久化层中的字段属性值等等[^2].
---
阅读全文
相关推荐












