json 字符串转换为Object实体数组

package com.dtdream.csr.manager.baseapi.common;


import com.dtdream.csr.api.manager.indep.entity.IndepDtCenters;
import com.dtdream.csr.api.manager.indep.entity.IndepDtcenterConf;
import com.dtdream.csr.api.util.FileApi;
import com.dtdream.csr.manager.dao.BaseDtcenterConfigDao;
import com.dtdream.csr.manager.dao.BaseDtcenterRegionItemDao;
import com.dtdream.csr.manager.entity.BaseDtcenterConfig;
import com.dtdream.csr.manager.entity.BaseDtcenterRegionItem;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.inject.Inject;
import javax.inject.Singleton;
import javax.persistence.criteria.CriteriaBuilder;

/**
 * Created by liucc on 17-6-19.
 */
@Singleton
public class DtcenterManager {
    private Logger logger = LoggerFactory.getLogger(DtcenterManager.class);

    @Inject
    private BaseDtcenterConfigDao baseDtcenterConfigDao;

    @Inject
    BaseDtcenterRegionItemDao baseDtcenterRegionItemDao;
    private static Map<String,IndepDtcenterConf> dtcenterConfMap = new HashMap<String, IndepDtcenterConf>();

    public Map<String,IndepDtcenterConf> getDtcenterConfMap (){
        return dtcenterConfMap;
    }
    public void registerDtcenter() {
        registerDtcenterConfig();
        registerDtceterRegions();
    }
    public void registerDtcenterConfig() {
        ObjectMapper objectMapper = new ObjectMapper();
        try {

            File file = new File(FileApi.COM_DTDREAM_CSR_BASE);
            String tempString = FileApi.readContent(file,"UTF-8");
            IndepDtCenters indepDtCenterList = objectMapper.readValue(tempString, IndepDtCenters.class);
            List<IndepDtcenterConf> confList = indepDtCenterList.getDtCenterConfList();

            if(confList.size() == 0) {
                logger.error("DtcenterManager: Dtcenter is null");
                return;
            }
            for (IndepDtcenterConf conf : confList) {
                if(dtcenterConfMap.get(conf.getId()) == null) {
                    dtcenterConfMap.put(conf.getId(),conf);
                    BaseDtcenterConfig baseConfig = baseDtcenterConfigDao.get(conf.getId());
                    if(baseConfig == null) {
                        /*Center的信息保存到数据库*/
                        baseConfig = new BaseDtcenterConfig();
                        baseConfig.setId(conf.getId());
                        baseConfig.setName(conf.getName());
                        baseConfig.setAccessKeyId(conf.getAccessKeyId());
                        baseConfig.setAccessKeySecret(conf.getAccessKeySecret());
                        baseConfig.setEndPoint(conf.getEndPoint());
                        baseDtcenterConfigDao.create(baseConfig);
                    }
                }
            }

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    public void registerDtceterRegions() {
        File file = new File("etc/com.dtdream.csr.region.json");
        try {
            String tempString = FileApi.readContent(file,"UTF-8");
            JSONObject json = JSONObject.fromObject(tempString);
            JSONArray jsonArray = json.getJSONArray("regions");

            for (int i = 0; i < jsonArray.size(); i++) {
                JSONObject object = (JSONObject)jsonArray.get(i);
                BaseDtcenterRegionItem item = (BaseDtcenterRegionItem) JSONObject.toBean(object,BaseDtcenterRegionItem.class);
                BaseDtcenterRegionItem baseDtcenterRegion = baseDtcenterRegionItemDao.get(item.getRegionId());
                if(jsonArray != null &&  baseDtcenterRegion == null) {
                    baseDtcenterRegionItemDao.create(item);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值