精华内容
下载资源
问答
  • Java 读取 JSON 文件转成 Map 对象应用场景待读取的外部 JSON 文件Java 代码读取结果Gson 应用场景 Jar 包或 War 包引用一个外部文件作为项目运行的配置文件 Json 采用 key - value 格式,作为配置文件,是一个很好...

    应用场景

    • Jar 包或 War 包引用一个外部文件作为项目运行的配置文件
    • Json 采用 key - value 格式,作为配置文件,是一个很好的选择
    • JSON 是一种文本形式的数据交换格式,它比XML更轻量、比二进制容易阅读和编写,调式也更加方便
    • 读取文件相对读取数据库,效率更高

    待读取的外部 JSON 文件

    • 内容随意,但必选按 Json 语法
    {
    	"name": "钟力",
    	"skill": {
    		"JavaScript": {
    			"level": "9",
    			"class": ["JQuery", "Vue", "AngularJS", "React"]
    		},
    		"NodeJS": {
    			"level": "8",
    			"class": ["Express"]
    		},
    		"Java": {
    			"level": "7",
    			"class": ["Spring", "SpringBoot", "SpringCloud"]
    		},
    		"SQL": {
    			"level": "7",
    			"class": ["MySQL", "MongoDB", "Redis"]
    		}
    	}
    }
    

    Java 代码

    /**
     * @author ZhongLi
     */
    package com.swmfizl;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.Reader;
    import java.util.Map;
    
    import com.google.gson.Gson;
    
    public class ReadJsonFile {
    	public static Map<String, Object> readJsonFile(String fileName) {
    		Gson gson = new Gson();
    		String json = "";
    		try {
    			File file = new File(fileName);
    			Reader reader = new InputStreamReader(new FileInputStream(file), "utf-8");
    			int ch = 0;
    			StringBuffer buffer = new StringBuffer();
    			while ((ch = reader.read()) != -1) {
    				buffer.append((char) ch);
    			}
    			reader.close();
    			json = buffer.toString();
    			return gson.fromJson(json, Map.class);
    		} catch (IOException e) {
    			e.printStackTrace();
    			return null;
    		}
    	}
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		System.out.println(readJsonFile("C:\\Users\\ZhongLi\\Desktop\\config.json"));
    	}
    
    }
    

    读取结果

    {name=钟力, skill={JavaScript={level=9, class=[JQuery, Vue, AngularJS, React]}, NodeJS={level=8, class=[Express]}, Java={level=7, class=[Spring, SpringBoot, SpringCloud]}, SQL={level=7, class=[MySQL, MongoDB, Redis]}}}
    

    Gson

    • Gson 是用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库
    • 可以将一个 JSON 字符串转成一个 Java 对象,或者反过来
    展开全文
  • Java .properties文件转换为JSON(使用JavaScript)。 函数propertiesToJSON接受一个字符串并返回一个JavaScript对象。 读取node的本地文件: const fs = require ( "fs" ) ; const path = require ( "path" ) ;...
  • 将本地的json文件转换成java对象

    千次阅读 2018-12-28 11:14:59
    2.然后 创建一个javabean 和json里面的属性对应 3.下面是工具类代码 package myUtil; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.Fi...

    1.首先下载GSON 的jar 包 。如gson-2.2.4.jar


    2.然后 创建一个javabean 和json里面的属性对应

    3.下面是工具类代码

    package myUtil;
    
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.UnsupportedEncodingException;
    import java.util.List;
    
    
    import com.google.gson.Gson;
    import com.google.gson.reflect.TypeToken;
    
    import test.WSWSVoucher;
    
    
    public class JsonToJava {
    	   
    	
    	 public static void main(String[] args) throws IOException {
    		 String readJsonData = readJsonData("C://新建文本文档(4).txt");
    		 Gson gson = new Gson();
    		 TypeToken<List<WSWSVoucher>> typeToken = new TypeToken<List<WSWSVoucher>>(){};
    		 List<WSWSVoucher> wswsVoucher =(List<WSWSVoucher>)gson.fromJson(readJsonData, typeToken.getType());
    	     /* WSWSVoucher fromJson = gson.fromJson(readJsonData, WSWSVoucher.class);
    	      System.out.println(fromJson.toString());*/
    		  for(WSWSVoucher list :wswsVoucher){
    			  System.out.println(list.toString());
    		  }
    	}
    	
    	
    	/**   将本地文本中的内容读取到string字符串
    	 * @param filePahtName   文件路径 如 :C://新建文本文档(4).txt
    	 * @return   文件中的字符串
    	 * @throws IOException
    	 */
    	public static String readJsonData(String filePahtName) throws IOException {
    		StringBuffer strbuffer = new StringBuffer();
    		File myFile = new File(filePahtName);
    		if (!myFile.exists()) {
    			System.err.println("不能找到文件" + filePahtName+",请检查文件地址");
    		}
    		try {
    			FileInputStream fis = new FileInputStream(filePahtName);
    			InputStreamReader inputStreamReader = new InputStreamReader(fis, "UTF-8");//乱码的话可以换成 GBK    //将字节流转化为字符输入流
    			BufferedReader in  = new BufferedReader(inputStreamReader);  // 创建一个使用默认大小输入缓冲区的缓冲字符输入流。
    			String str;
    			while ((str = in.readLine()) != null) {
    				strbuffer.append(str);  //new String(str,"UTF-8")
    			}
    			while (in !=null) {
    				in.close();
    			}
    			while (inputStreamReader !=null) {
    				inputStreamReader.close();
    			}
    			while (fis !=null) {
    				fis.close();
    			}
    		} catch (IOException e) {
    			e.getStackTrace();
    		}
    		return strbuffer.toString();
    	}
    
    }
    


     

    展开全文
  • ========使用java代码生成json文件和word文档!=======
  • 最近遇到了业务需求,java对象转换为json文件json文件转换为java对象。这个需求可以拆分为: json 序列化反序列化 java IO json 序列化反序列化我们使用 alibaba 的 fastjson,很好用。 直接看demo代码吧。 依赖...

    前言

    最近遇到了业务需求,java对象转换为json文件,json文件转换为java对象。这个需求可以拆分为:

    1. json 序列化反序列化
    2. java IO

    json 序列化反序列化我们使用 alibaba 的 fastjson,很好用。

    直接看demo代码吧。

    依赖

    <!-- fastjson https://mvnrepository.com/artifact/com.alibaba/fastjson -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.56</version>
    </dependency>
    
    <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.12</version>
    </dependency>
    

    代码

    实体类 Person(使用了lombok依赖)

    三个 lombok 注解必须加,如果未使用 lombok,请在此实体类加 setter & getter,全参构造方法,无参构造方法。

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class Person {
        private Integer id;
        private String name;
        private Integer age;
    }
    

    object2JsonFile

    /**
     * Object 转换为 json 文件
     *
     * @param finalPath finalPath 是绝对路径 + 文件名,请确保欲生成的文件所在目录已创建好
     * @param object 需要被转换的 Object
     */
    public static void object2JsonFile(String finalPath, Object object) {
        JSONObject jsonObject = (JSONObject) JSON.toJSON(object);
    
        try {
            OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(finalPath), StandardCharsets.UTF_8);
            osw.write(jsonObject.toJSONString());
            osw.flush();
            osw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println(jsonObject.toJSONString());
    }
    

    jsonFile2Object

    /**
     * json 文件转换为 Object
     *
     * @param finalPath finalPath 是绝对路径 + 文件名,请确保欲生成的文件所在目录已创建好
     * @param targetClass 需要被转换的 json 对应的目标类
     * @param <T> 需要被转换的 json 对应的目标类
     * @return 解析后的 Object
     */
    public static <T> T jsonFile2Object(String finalPath, Class<T> targetClass) {
        String jsonString;
        File file = new File(finalPath);
        try {
            FileInputStream inputStream = new FileInputStream(file);
            int size = inputStream.available();
            byte[] buffer = new byte[size];
            inputStream.read(buffer);
            inputStream.close();
            jsonString = new String(buffer, StandardCharsets.UTF_8);
            T object = JSON.parseObject(jsonString, targetClass);
            return object;
        } catch (IOException e) {
            e.printStackTrace();
            throw new RuntimeException("IO exception");
        }
    }
    

    测试类的方法(maven项目结构中的测试类)

    @Test
    void object2JsonFile() {
        Person person = new Person(22, "王多鱼", 19);
        String finalPath = "/Users/qianshijie/Temporary/skycomm/devsyn/test.json";
        JsonUtil.object2JsonFile(finalPath, person);
    }
    
    @Test
    void jsonFile2Object() {
        String finalPath = "/Users/qianshijie/Temporary/skycomm/devsyn/test.json";
        Person person = JsonUtil.jsonFile2Object(finalPath, Person.class);
        System.out.println(person.toString());
    }
    

    运行结果

    根据 java 对象生成 json 文件成功:

    Screen Shot 2020-11-12 at 9.42.56 AM

    生成的json文件(可使用vim查看):

    Screen Shot 2020-11-12 at 9.43.26 AM

    读取 json 文件转换为 java对象 成功:

    Screen Shot 2020-11-12 at 9.43.09 AM

    展开全文
  • java 读取本地json文件并转换成对象

    千次阅读 2020-07-14 10:58:22
    json工具类 package util; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; ...import java.io.*;... //json转对象 public static void main(String[] args){ String

    json工具类

    package util;
    
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONArray;
    import com.alibaba.fastjson.JSONObject;
    
    import java.io.*;
    
    public class JsonUtil {
    
        //json转对象
        public static void main(String[] args){
            String path = JsonUtil.class.getClassLoader().getResource("test.json").getPath();
            String s = JsonUtil.readJsonFile(path);
            JSONObject jobj = JSON.parseObject(s);
            System.out.println("name"+jobj.get("name"));
            JSONObject address1 = jobj.getJSONObject("address");
            String street = (String) address1.get("street");
            String city = (String) address1.get("city");
            String country = (String) address1.get("country");
    
            System.out.println("street :" + street);
            System.out.println("city :" + city);
            System.out.println("country :" + country);
    
            JSONArray links = jobj.getJSONArray("links");
    
            for (int i = 0 ; i < links.size();i++){
                JSONObject key1 = (JSONObject)links.get(i);
                String name = (String)key1.get("name");
                String url = (String)key1.get("url");
                System.out.println(name);
                System.out.println(url);
            }
        }
    
        /**
         * 读取json文件,返回json串
         * @param fileName
         * @return
         */
        public static String readJsonFile(String fileName) {
            String jsonStr = "";
            try {
                File jsonFile = new File(fileName);
                FileReader fileReader = new FileReader(jsonFile);
    
                Reader reader = new InputStreamReader(new FileInputStream(jsonFile),"utf-8");
                int ch = 0;
                StringBuffer sb = new StringBuffer();
                while ((ch = reader.read()) != -1) {
                    sb.append((char) ch);
                }
                fileReader.close();
                reader.close();
                jsonStr = sb.toString();
                return jsonStr;
            } catch (IOException e) {
                e.printStackTrace();
                return null;
            }
        }
    
    }
    

    json示例:

    {
      "ORG_ID": "招商银行机构代码",
      "MORT_CONTRACT_NO": "抵押合同编号",
      "MORTGAGEE": "抵押权人姓名",
      "STATUS": "0",
      "MSG": "查无数据",
      "APPLICANT": [
        {
          "MORTGAGOR ": "抵押人姓名",
          "ID_TYPE": "证件类型 ",
          "ID_NO": "证件号码",
          "MORTGAGOR_TEL": "抵押人联系电话",
          "MORTGAGOR_ADDR": "抵押人联系地址",
          "REAL_NAME": "不动产名称(坐落)",
          "CERT_NO": "不动产证号或预售合同号",
          "CERT_NO_PRE": "卖方不动产证号",
          "REAL_UNIT_NO": "不动产单元号",
          "SHARED_TYPE ": "不动产共有情况 ",
          "PORTION ": "共有份额",
          "AGENT_NAME": "代理人姓名",
          "AGENT_ID_TYPE ": "代理人证件类型",
          "AGENT_ID_NO ": "代理人证件号码"
        }
      ],
      "DEBT_TYPE": "01 ",
      "REG_TYPE": "D01 ",
      "LOAN_REASON": "贷款原因",
      "LOAN_PRICE": "贷款金额",
      "DEBT_PRICE": "被担保主债权数额",
      "DEBT_STARTDATE": "债务履行起始日期 ",
      "DEBT_ENDATE": "债务履行结束日期 ",
      "ASSUER_RANGE": "担保范围",
      "MAX_DEBT_EVALUAT": "最高债权数额",
      "MAX_DEBT_START": "2019-07-12",
      "MAX_DEBT_END": "2029-07-12",
      "DEBT_MAN": "债务人",
      "MORT_SHARED_TYPE": "01 ",
      "MORT_SHARED_PORTION": "",
      "MORT_CONTRACT_DATE": "抵押合同签订日期",
      "CONTRACT_URL ": "http://... ",
      "CONTRACT_FILE_TYPE ": "01 ",
      "COMMENT": "备注:"
    }
    

     

    展开全文
  • Java读取项目json文件并转为JSON对象

    千次阅读 2019-12-26 15:31:06
    1、创建json文件(demo.json) { "button": [ { "type": "click", "name": "今日歌曲", "key": "V1001_TODAY_MUSIC" }, { "name": "菜单", "sub_button": [ { "type": "view", ...
  • JAVA-JSON工具转换类

    2018-06-19 15:03:07
    该工具类包括多重的json字符串或Map或List的相互转换,该文件包括主要的jar包,可以快捷的使用工具
  • 包含javajson相互转换的所有jar包, commons-beanutils-1.8.3 commons-collections-3.2.1 commons-lang-2.6 commons-logging-1.2 ezmorph-1.0.6 json-lib-2.4
  • Java 操作json文件的例子,对json数据进行娶添加、删除、修改等操作,下载源码后,重点参见JsonConvert.java文件,  读取nameID.txt文件中的NAMEID字段(key)对应值(value)并存储,读取NAMEID对应值,读取原始...
  • JSON格式转换为Java对象

    千次阅读 2019-10-25 18:57:33
    (一)转换为Java对象 代码 @Test public void test04() throws IOException { String json ="{\"gender\":\"男\",\"age\":23,\"username\":\"ALworm\"}"; ObjectMapper mapper = new ObjectMapper(); ...
  • JSON转换为JAVA对象及日期格式转换处理 -
  • 1 获取本地js文件路径 Fileuri = ParseTools.class.getClassLoader().getResource("...2 通过路径打开本地json文件 File file = new File(Fileuri); 3 使用读取流读取文件 reader ...
  • 思路:采用gson; 找出一个json格式的数据: {bh:'A112',sjzmc:'fe',sjzjs:'js',sjzxqdz:'dz'},前提是key的名称要和实体类对象中的属性一致。... //2、调用toJson(Object)将对象转为字符串 String json =
  • java语言解析json文件,其中包含各种解析json文件所需要的jar包; 包含对于时间戳转化为时间的方法; 以及文件的读写,arraylist类容易出现的问题等。
  • Java类实现了将标准的json字符串转换成map,并将数据解析到Excel的方法,本方法简单实用,可以批量导出数据到Excel文档中
  • 开发过程中经常会遇到json数据的处理,而单独对json数据进行增删改并不方便,尤其是Geojson文件的处理,通过对网络资料的整理总结,下面介绍Java语言方法对json数据进行读取、添加、删除与修改操作。
  • Java读取Json文件方法

    千次阅读 2020-02-15 23:03:12
    Json是一种轻量级数据交换格式,一般可以用来表示一个对象或者一个数组。 对象,是组无序的键值对,键值之间用“:”连接,键值用双引号("")括起来,键值对间用",“相连。最外层扩上大括号”{}" { "count": 10, ...
  • Java 复杂的Json文件解析为java对象

    千次阅读 2017-09-01 11:04:52
    下面是一个较为复杂的Json文件的处理过程。该json文件的大致构成如下: 本文件是有很多的会议安排组成的,而每一个会议安排里又有内容,内容又进一步细分为items数组,items数组里又有article数组,所以可以看做...
  • package test; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException;...import java.io.InputStreamReader;...import net.sf.json.JSON; imp...
  • Java对象JSON数据的相互转换

    千次阅读 2020-12-03 15:55:18
    文章目录Java对象JSON数据的相互转换一、Java对象转JSON基本使用注解使用二、JSON转为Java对象使用步骤 一、Java对象转JSON 一般Java对象JSON的相互转换都使用JSON解析器来完成。 常见的JSON解析器有:Json...
  • 使用第三方工具将各种对象转json格式,比如JavaBean对象/List或Set或Map对象
  • 通过Java把序列化对象存入json文件

    千次阅读 2019-04-11 17:15:43
    在开发中用到将用户信息保存到本地的json文件中,特此记录一下 实际开发中并不是所有的数据都要和数据库打交道的,比如用户第一次注册的信息是在数据库中,但是当第二次登录时候就从json文件中去查找相应的数据,...
  • 文章目录1、Java与前台的交互2、解析JSON的第三方工具3、JSON数据和Java对象的相互转换Java对象转换JSON字符串JSON字符串转为Java对象 1、Java与前台的交互 作为后台,Java不仅需要接收前台传递过来的数据,还需要...
  • 本篇文章主要介绍了java生成json字符串的方法,包括map对象转换成json对象,list转换成jsonjson转换成list和map,有兴趣的可以了解一下。
  • java基础之泛型对象json

    千次阅读 2019-10-09 16:14:32
    把泛型对象转成字符串放到缓存中,获取后使用有点问题,记录下,有碰到的朋友,参考下。 2. 解决方案 2.1 操作类及说明 /** * @auther: 软件老王 */ public static void main(String[] args) { VO<UserParm&...
  • CodeName.txt 文件中是 { “English”:“英国”, ”China“:“中国”, } String dirname = “D:...//创建一个文件对象 File codeNameFile = new File(dirname); //从硬盘存在的一个文件,读取其内容到程序中,用FileI
  • 实现java对象转换json格式数据,非常方便 例如: List list=service.queryTasks(query); JSONArray json=JSONArray.fromObject(list); System.out.println(json);
  • javajson字符串和java对象的转换

    千次阅读 2020-11-02 16:23:09
    1、Java与前台的交互2、解析JSON的第三方工具3、JSON数据和Java对象的相互转换Java对象转换JSON字符串JSON字符串转为Java对象 1、Java与前台的交互 作为后台,Java不仅需要接收前台传递过来的数据,还需要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 180,476
精华内容 72,190
关键字:

java读json文件转对象

java 订阅