美文网首页
Java实现json转properties

Java实现json转properties

作者: yummy觉一 | 来源:发表于2019-09-25 09:09 被阅读0次

在微服务开发过程中可能会有这样的应用场景:

  • 前端用yaml进行配置

前端为何用yaml?因为yaml格式的数据可读性很高

  • 但前端给后端发送数据时需json格式

为何不用yaml而用json传输?因为json是HTTP头支持的数据格式,能够保持数据结构和数据一致性,发送到后端便于解析。

  • 后端接收到json数据时需转properties键值对形式存入关系型数据库。

为何需要将json转properties存入关系型数据库?这是关系型数据库要求的。

根据以上应用场景的需求,数据格式转换可总结为:
yaml → json → properties
像yaml和json的互转前端已经有很多插件完成,如node中的js-yaml.js

本文实现JSONproperties

  • 第一步:pom中引入依赖:
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.59</version>
</dependency>
  • 第二步:实现JSONproperties的类HandleString.java
package com.hilbp.tools;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import com.alibaba.fastjson.JSONObject;

public class HandleString {
    
    public Map<String, Object> test_json2prop(JSONObject jsonObject){
        String tmp_key = "";
        String tmp_key_pre = "";
        Map<String, Object> tmp_config = new HashMap<String, Object>();

        this.json2prop(jsonObject, tmp_key, tmp_key_pre, tmp_config);
        
        System.out.println("in [HandleString] result:" + tmp_config.toString());    
        return tmp_config;
    }
    
    public int json2prop(JSONObject jsonObject, String tmp_key, String tmp_key_pre, Map<String, Object> tmp_config){
        Iterator<String> it = jsonObject.keySet().iterator();
        while(it.hasNext()){
             // 获得key
             String key = it.next(); 
             String value = jsonObject.getString(key);   
             try {
                 JSONObject jsonStr = JSONObject.parseObject(value);
                 tmp_key_pre = tmp_key;
                 tmp_key += key +".";
                 this.json2prop(jsonStr, tmp_key, tmp_key_pre, tmp_config);  
                 tmp_key = tmp_key_pre;
                 
             } catch (Exception e) {
                 tmp_config.put(tmp_key + key, value);
                 System.out.println(tmp_key + key + "=" + value);
                 continue;
             }
        }
        return 0;
     }
}

方法json2prop实现了具体的转换逻辑,采用递归实现
方法test_json2prop实现了外部调用,使用时传入JSONObject类型数据调用此方法即可,最后以map返回键值对数据,然后将数据写入数据库即可。

相关文章

网友评论

      本文标题:Java实现json转properties

      本文链接:https://www.haomeiwen.com/subject/hbywectx.html