JSON数组转Java List

JSON数组转Java List本文使用alibaba开源项目fastjson与SourceForge开源项目JSON-lib两种方法转换json。现有json文件user.json如下:[{“userid”:”309BCCE3-8525-4D33-9856-5084E24FD96F”,”username”:”林梦”,”password”:”19bdec7440acd44c669


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

本文使用alibaba开源项目fastjson与SourceForge开源项目JSON-lib两种方法转换json。

现有json文件user.json如下:

[
  {
    "userid": "309BCCE3-8525-4D33-9856-5084E24FD96F",
    "username": "林梦",
    "password": "19bdec7440acd44c669240ed534fc2f6",
    "partment": "专案一组",
    "tel": "123",
    "email": "meng@baal.xyz",
    "tag": "专案",
    "creater": "",
    "time": "2016-10-24T08:10:51.101Z",
    "token": ""
  },
  {
    "userid": "FDA8B18B-E6EB-4C80-8A4B-0B2B27AEB7E2",
    "username": "汪小雨",
    "password": "19bdec7440acd44c669240ed534fc2f6",
    "partment": "专案三组",
    "tel": "123",
    "email": "xiaoyu@baal.xyz",
    "tag": "专案",
    "creater": "",
    "time": "2016-10-24T08:12:28.869Z",
    "token": ""
  }
]

创建数据模型User类,属性如下:

public class User {
	private String userid;
	private String username;
	private String password;
	private String partment;
	private String tel;
	private String email;
	private String tag;
	private String creater;
	private String time;
	private String token;

	......
}

1、使用fastjson

读取json文件转化为list:

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.List;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class JsonToList_fastjson {
	private static final String User_Path = "d:/user.json";
	private static final String Message_Path = "d:/message.json";
	
	public static List<User> getUsers() {
		String userString = fileToStr(User_Path);
		List<User> list = JSONObject.parseArray(userString,User.class);
		return list;
	}

	public static String fileToStr(String filepath) {
		File file = new File(filepath);
		StringBuffer sb = new StringBuffer();
		InputStreamReader isr = null;
		try {
			isr = new InputStreamReader(new FileInputStream(file), "UTF-8");
			while (isr.ready()) {
				sb.append((char) isr.read());
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				isr.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return sb.toString();
	}

	public static void main (String [] args) {
		
		List<User> listUsers = getUsers();
		for (User user : listUsers) {
			System.out.println(user.getEmail());
		}

		JSONArray array = (JSONArray) JSONArray.toJSON(listUsers);
		System.out.println(array);
	}
}

2、使用JSON-lib,相关jar包也可以在这里下载

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.List;

import net.sf.json.JSONArray;

public class JsonToList {

	private static final String User_Path = "d:/user.json";

	@SuppressWarnings("unchecked")
	public static List<User> getUsers() {
		String userString = fileToStr(User_Path);
		JSONArray array = JSONArray.fromObject(userString);
		List<User> list = null;
		list = (List<User>) JSONArray.toCollection(array, User.class);

		return list;
	}

	public static String fileToStr(String filepath) {
		File file = new File(filepath);
		StringBuffer sb = new StringBuffer();
		InputStreamReader isr = null;
		try {
			isr = new InputStreamReader(new FileInputStream(file), "UTF-8");
			while (isr.ready()) {
				sb.append((char) isr.read());
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				isr.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return sb.toString();
	}

	public static void main(String[] args) {

		List<User> list = getUsers();
		for (User user : list) {
			System.out.println(user.getUsername());
		}

		JSONArray array = JSONArray.fromObject(list);
		System.out.println(array);
	}
}

JSON-lib API :Doc

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172289.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • sha1() 函数

    sha1() 函数

    2021年10月12日
  • 永磁同步电机矢量控制(四)——simulink仿真搭建

    永磁同步电机矢量控制(四)——simulink仿真搭建由于是初学,对于simulink很多地方不熟悉,在此记下整个仿真搭建的选择元件的细节。1电机模型的选择及参数设置永磁同步电机的英文缩写为PMSM,全称PermanentMagnetSynchronousMachine。在library内搜索Permanent即可找到它。Numberofphase电机相数Back…

    2022年6月4日
  • WebService简单案例实例

    WebService简单案例实例本周工作日即将结束,下周项目经理安排了一项任务可能需要使用到webservice,但本人之前尚未使用过,网上查了一些案例看了看在此小记一篇留作日后回首也希望可以帮助到查看者朋友1、什么是WebService?WebService是一种远程调用技术,也叫XMLWebServiceWebService,是一种可以接收从Internet或者Internet上的其他系统中传递过来的请求,轻量级的独…

    2022年7月21日
  • python和c++哪个好_run pycharm community edition

    python和c++哪个好_run pycharm community edition在pycharm中使用django命令的过程中经常会用到pythonmanage.py相关的命令,每次都输入pythonmanage.py会比较麻烦,可以利用pycharm提供的tools来省去pythonmanage.py的重复输入。具体实现过程如下:先进入settings完成如下操作随后可勾选Tools中的Runmanage.pyTask完成后即可以直接输入manag…

    2022年8月26日
  • Django(67)drf搜索过滤和排序过滤

    Django(67)drf搜索过滤和排序过滤前言当我们需要对后台的数据进行过滤的时候,drf有两种,搜索过滤和排序过滤。搜索过滤:比如我们想返回sex=1的,那么我们就可以从所有数据中进行筛选排序过滤:比如我们想对价格进行升序排列,就可以

    2022年7月30日
  • Stimulsoft Reports.Web.JS 2022.2.5

    Stimulsoft Reports.Web.JS 2022.2.5Stimulsoft2022.2.5Publishedon13May2022Reports.WebReports.NetReports.WpfReports.JSReports.PHPReports.JavaReports.BlazorReports.AngularDashboards.WEBDashboards.WINDashboards.JSDashboards.PHPBIDesignerBICloudBIServerN..

    2022年7月26日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号