zoukankan      html  css  js  c++  java
  • springboot 解析深层json

    1、maven依赖

            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.28</version>
            </dependency>
    
            <!-- JSONObject对象依赖的jar包 -->
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>1.9.3</version>
            </dependency>
            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>3.2.1</version>
            </dependency>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.6</version>
            </dependency>
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>1.1.1</version>
            </dependency>
            <dependency>
                <groupId>net.sf.ezmorph</groupId>
                <artifactId>ezmorph</artifactId>
                <version>1.0.6</version>
            </dependency>
            <dependency>
                <groupId>net.sf.json-lib</groupId>
                <artifactId>json-lib</artifactId>
                <version>2.2.3</version>
                <classifier>jdk15</classifier><!-- 指定jdk版本 -->
            </dependency>
            <!-- Json依赖架包下载 -->

    2、controller

    @RestController
    public class TestController {
        @Autowired
        ParseInfo parseInfo;
        @RequestMapping("/")
        public List<BalancerResponse> say()
        {
    
            RestTemplate restTemplate = new RestTemplate();
            String notice = restTemplate.getForObject("http://192.168.1.100:8888/json/lb_list", String.class);
            List<BalancerResponse> result = parseInfo.parserToMap(notice);
            return result;
        }
    }

    3、service

    @Service
    public class ParseInfo {
    
        @Value("${configtxt.path}")
        private String configtxtPath;
    
        private static Map map = new HashMap();
        private static Map ipPortMap = new HashMap();
        public List<BalancerResponse> parserToMap(String notice)
        {
    
            try{
                File file = new File(configtxtPath);
                InputStreamReader inputReader = new InputStreamReader(new FileInputStream(file));
                BufferedReader bf = new BufferedReader(inputReader);
                // 按行读取字符串
                String str;
                while ((str = bf.readLine()) != null) {
                    ipPortMap.put(str.split(",")[0], str.split(",")[1]);
                }
                bf.close();
                inputReader.close();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
    
    
    
            List<BalancerResponse> balancerResponseList = new ArrayList<>();
            JSONObject json = JSONObject.fromObject(notice);
            JSONArray jsonArray = json.getJSONArray("Destination");
            for(int i=0; i<jsonArray.size(); i++)
            {
                BalancerResponse balancerResponse = new BalancerResponse();
                String ip = jsonArray.getJSONObject(i).getString("value").split(":")[1];
                String maxLoad = jsonArray.getJSONObject(i).getJSONObject("children").getJSONObject("Resources")
                        .getJSONObject("children").getJSONArray("Resource").getJSONObject(0).getJSONObject("attributes")
                        .getString("max");
                String currentLoad = jsonArray.getJSONObject(i).getJSONObject("children").getJSONObject("Resources")
                        .getJSONObject("children").getJSONArray("Resource").getJSONObject(0).getJSONObject("attributes")
                        .getString("load");
                ;
                balancerResponse.setHost(ip);
                balancerResponse.setPort(ipPortMap.get(ip).toString());
                balancerResponse.setMaxLoad(Integer.parseInt(maxLoad));
                balancerResponse.setCurrentLoad(Integer.parseInt(currentLoad));
                balancerResponse.setPass("ClueCon");
                balancerResponseList.add(balancerResponse);
            }
            System.out.println(ipPortMap);
            return balancerResponseList;
    
        }
    
    
    }
  • 相关阅读:
    wampServer多站点配置
    wamp中根目录自定义
    [学习笔记] 七步从Angular.JS菜鸟到专家(2):Scopes [转]
    [学习笔记] 七步从Angular.JS菜鸟到专家(1):如何开始 [转]
    [学习笔记] Python标准库简明教程 [转]
    [学习笔记] Python标准库的学习准备 [转]
    [学习笔记] socket通信简介 [转]
    [学习笔记] 国内主流php框架比较 [转]
    [学习笔记] symfony核心类 [转]
    [学习笔记] Symfony2安全机制
  • 原文地址:https://www.cnblogs.com/zhangxianrong/p/14406803.html
Copyright © 2011-2022 走看看