java中集合对象与string互转的几种方式
准备数据:
UserInfo.java
@Data @AllArgsConstructor public class UserInfo { private Long id; private String username; private String password; }
模拟数据
ArrayList<UserInfo> userInfos = new ArrayList<>(); UserInfo user1 = new UserInfo(1L, "子", "123"); UserInfo user2 = new UserInfo(2L, "非", "345"); UserInfo user3 = new UserInfo(3L, "我", "567"); UserInfo user4 = new UserInfo(4L, "鱼", "789"); userInfos.add(user1); userInfos.add(user2); userInfos.add(user3); userInfos.add(user4);
方式一 Gson类 import com.google.gson.Gson;
Gson gson = new Gson(); // json对象转string String obj1 = gson.toJson(user1); // json集合转string String list1 = gson.toJson(userInfos); // string转json对象 UserInfo userInfo = gson.fromJson(obj1, UserInfo.class); // string转json集合 List<UserInfo> result1 = gson.fromJson(list1,new TypeToken<List<UserInfo>>() { }.getType());
方式二 JSONArray类 import net.sf.json.JSONArray;
// json集合转string JSONArray result2 = JSONArray.fromObject(userInfos); String s = result2.toString(); // jsonarray转json集合 List<UserInfo> collection = (List<UserInfo>) JSONArray.toCollection(result2, UserInfo.class);
方式三 JSON类 import com.alibaba.fastjson.JSON;
// json集合转string String result3 = JSON.toJSONString(userInfos); // string转对象 ReverseMap geocodes = JSONObject.parseObject(result3,ReverseMap.class); // string转json集合 List<UserInfo> userInfos = JSON.parseArray(result3, UserInfo.class); // string转map HashMap map = JSON.parseObject(result3, HashMap.class);