Java操作Json数组

一、字符串与json

字符串格式:
static String json = "[{'day1':'work','day2':26},{'day1':123,'day2':26}]";
转换为json数组
JSONArray jsonArray = JSONArray.fromObject(json);
单个json对象转换
static String jobj = {'day1': 1, 'day2': 2};
JSONObject obj = JSONObject.fromObject(jobj);

json转换为java bean

JSONObject jsonObject = JSONObject.fromObject(new JsonBean());
List 转换成json(Map也可以)

List list = new ArrayList();
JsonBean2 jb1 = new JsonBean2();
jb1.setCol(1);
jb1.setRow(1);
jb1.setValue("xx");

JsonBean2 jb2 = new JsonBean2();
jb2.setCol(2);
jb2.setRow(2);
jb2.setValue("");

list.add(jb1);
list.add(jb2);
JSONArray ja = JSONArray.fromObject(list);


二、遍历Json数组

  1. 输出每个成员
    		for(int i=0; i<jsonArray.size(); i++){
    			System.out.println(jsonArray.get(i));
    		}

  2. 获取每个成员的key及value
    JSONObject obj = (JSONObject) jsonArray.get(i);
    	Iterator it = obj.keys();
    	while (it.hasNext()) {
    	  String key = it.next().toString();
    	  System.out.println("key ----- "+key);
    	  System.out.println("value ----- "+obj.get(key));
    }

三、修改、添加、删除成员

  1. 修改
    涉及到修改json成员的很少,如果真的要修改的话,个人建议转为字符串然后用replaceAll这个函数进行修改,如果你有更好的建议欢迎给评论。
  2. 增加
    	JSONObject obj2 = new JSONObject();
    	obj2.put("day1", "study");
    	obj2.put("day2", "2");
    	jsonArray.add(obj2);


  3. 删除
    	jsonArray.remove(index);
    	jsonArray.subList(fromIndex, toIndex)


### 使用Java读取JSON数组 为了处理JSON数据,在Java中有多种库可供选择,例如`org.json`、`Gson`以及Jackson等。当涉及到解析JSON数组时,可以利用这些库中的功能来简化操作。 #### 利用Jackson库解析JSON数组 通过使用Jackson库中的`ObjectMapper`类(即提到的JsonMapper),能够方便地完成对象到JSON字符串之间的转换工作,同时也支持反序列化过程——即将JSON格式的数据映射回Java对象实例。对于JSON数组而言,则可以通过定义相应的集合类型来进行匹配[^2]。 下面展示一段具体的代码片段用于说明如何借助于Jackson实现这一目标: ```java import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import java.io.IOException; import java.util.List; import java.util.Map; public class JsonArrayExample { public static void main(String[] args) throws IOException { String jsonArrayString = "[{\"name\":\"John\",\"age\":30},{\"name\":\"Jane\",\"age\":25}]"; ObjectMapper mapper = new ObjectMapper(); List<Map<String, Object>> list = mapper.readValue(jsonArrayString, new TypeReference<List<Map<String, Object>>>(){}); for (Map<String,Object> map : list){ System.out.println("Name: " + map.get("name")+", Age:"+map.get("age")); } } } ``` 这段程序首先创建了一个包含两个元素的JSON数组字符串表示形式;接着初始化了`ObjectMapper`的一个实例,并调用了其`readValue()`方法传入待解析的JSON串及预期的结果类型描述符(`TypeReference`)作为参数;最后遍历得到的对象列表并打印出每项记录的相关信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值