将JSON数据转换成List对象,转换有日期格式的

import net.sf.ezmorph.object.DateMorpher;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.util.JSONUtils;

public static List jsonToObjectList(String jsonString, Class entityClass,String[] dataFormats) {
    JSONArray jsonArray = JSONArray.fromObject(jsonString);
    List objectList = new ArrayList();
    for (Iterator iter = jsonArray.iterator(); iter.hasNext();) {
        JSONObject jsonObject = (JSONObject) iter.next();
        JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(dataFormats));
        objectList.add(JSONObject.toBean(jsonObject, entityClass));
    }
    return objectList;
}

例如:
List<UserDto> dtos = JsonUtil.jsonToObjectList(gridStr, UserDto.class,new String[]{"yyyy-MM-dd","yyyy-MM-ddTHH:mm:ss"});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过以下步骤将JSON数据转换List集合: 1. 创建一个Java类,该类应该包含与JSON键相对应的属性。 2. 将JSON数据转换为Java对象的数组或列表。 3. 遍历Java对象数组或列表,并将每个对象添加到List集合中。 以下是一个示例代码,以说明如何将JSON数据转换List集合: 假设我们有以下JSON数据: ``` [ { "name": "John", "age": 30, "address": { "street": "123 Main St", "city": "New York", "state": "NY", "zip": "10001" } }, { "name": "Jane", "age": 25, "address": { "street": "456 Elm St", "city": "Los Angeles", "state": "CA", "zip": "90001" } } ] ``` 并且我们已经创建了一个名为Person的Java类,该类包含name、age和address属性。 Address类也已经创建,其中包含street、city、state和zip属性。 我们可以使用Jackson库将JSON数据转换List集合: ``` ObjectMapper objectMapper = new ObjectMapper(); String json = "[{\"name\":\"John\",\"age\":30,\"address\":{\"street\":\"123 Main St\",\"city\":\"New York\",\"state\":\"NY\",\"zip\":\"10001\"}},{\"name\":\"Jane\",\"age\":25,\"address\":{\"street\":\"456 Elm St\",\"city\":\"Los Angeles\",\"state\":\"CA\",\"zip\":\"90001\"}}]"; List<Person> personList = objectMapper.readValue(json, new TypeReference<List<Person>>(){}); ``` 在此示例中,我们首先创建了一个ObjectMapper对象,该对象用于将JSON数据转换为Java对象。然后,我们将JSON数据作为字符串传递给readValue()方法,并指定要将其转换为的Java类(Person类)。最后,我们将返回的Person对象存储在personList变量中。 现在,我们可以遍历personList集合,并访问每个Person对象的属性: ``` for (Person person : personList) { String name = person.getName(); int age = person.getAge(); String street = person.getAddress().getStreet(); String city = person.getAddress().getCity(); String state = person.getAddress().getState(); String zip = person.getAddress().getZip(); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值