java从项目中读取json文件转为map或者实体类

导入依赖:

 
            net.sf.json-lib
            json-lib
            2.4
            jdk15
        

json文件Test.json,内容:

{
  "test": [
    {
      "id": "111",
      "name": "haha"
    },
    {
      "id": "222",
      "name": "呵呵"
    }
  ]
}

实体类:

package com.gkl1120;

import lombok.Data;

/**
 * @author ctx_gao kailong
 * @date 2020/6/11 11:49
 */
@Data
public class IdAndName {
    private String id;
    private String name;
}

在不依赖web容器的环境下:

package com.gkl1120;

import net.sf.json.JSONObject;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * @author ctx_gao kailong
 * @date 2020/6/11 11:08
 */
public class Test01 {
    public static void main(String[] args) throws IOException {

        BufferedReader bufferedReader = new BufferedReader(new FileReader(new File("javase/src/main/resources/Test.json")));
        int line = 1;
        String context = null;
        String json = "";
        //json内容转化为Map集合通过遍历集合来进行封装
        while ((context = bufferedReader.readLine()) != null) {
            //Context就是读到的json数据
            json += context;
            line++;
        }
        Map result= JSONObject.fromObject(json);
        List> list1 = (List>) result.get("test");
        List list2 = (List) result.get("test");
        System.out.println(list1);
        System.out.println(list2);

    }
}

打印结果:

[{"id":"111","name":"haha"},{"id":"222","name":"呵呵"}]
[{"id":"111","name":"haha"},{"id":"222","name":"呵呵"}]

在web容器下:

@GetMapping("/test01")
    public Object test01() throws IOException {
        Resource resource = resourceLoader.getResource("classpath:/Test.json");
        InputStream is = resource.getInputStream();
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);
        String data = "";
        String result = "";
        while ((data = br.readLine()) != null) {
            result += data;
        }
        br.close();
        isr.close();
        is.close();
        Map resultMap = JSONObject.fromObject(result);
        List> list1 = (List>) resultMap.get("test");
        return list1;
    }

你可能感兴趣的:(java从项目中读取json文件转为map或者实体类)