当前位置: 首页 > news >正文

中国住房和城乡建设部网站官网可以做产品宣传的网站

中国住房和城乡建设部网站官网,可以做产品宣传的网站,网络营销公司是做什么的,网站建设公司电话咨询文章目录 一、概述二、思路三、实现四、测试 一、概述 我们在 yaml转换成JSON、MAP、Properties 通过引入 实现了JSON、Properties、XML、YAML文件的相互转换,具体的类、方法如下: 上面的实现,定义了多个类、多个方法,使用太不…

文章目录

  • 一、概述
  • 二、思路
  • 三、实现
  • 四、测试

一、概述

我们在 yaml转换成JSON、MAP、Properties 通过引入
在这里插入图片描述
实现了JSON、Properties、XML、YAML文件的相互转换,具体的类、方法如下:
在这里插入图片描述
上面的实现,定义了多个类、多个方法,使用太不方便,迫切需要精简逻辑。

二、思路

观察上面的代码实现,发现jackson对不同对象的封装主要是通过ObjectMapper的子类来进行的
在这里插入图片描述
以JsonUtils为例,观察方法的实现

/*** JsonUtils 转换工具* * @author 00fly**/
public class JsonUtils extends BaseJackson
{/*** json转properties字符串* * @param jsonText* @return* @throws IOException*/public static String jsonToPropText(String jsonText)throws IOException{JsonNode jsonNode = jsonMapper.readTree(jsonText);return javaPropsMapper.writeValueAsString(jsonNode);}/*** Json转xml字符串* * @param jsonText* @return* @throws IOException*/public static String jsonToXml(String jsonText)throws IOException{JsonNode jsonNode = jsonMapper.readTree(jsonText);return xmlMapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonNode);}/*** json转yaml* * @param jsonText* @return* @throws IOException*/public static String jsonToYaml(String jsonText)throws IOException{JsonNode jsonNode = jsonMapper.readTree(jsonText);return yamlMapper.writeValueAsString(jsonNode);}
}

我们发现,转换方法分为2步,首先将源格式数据转换为JsonNode,其次再将JsonNode转换为需要的格式。

转换流程示意图如下:

JSON
JsonNode
Properties对象
Properties字符串
XML
YAML
JSON
Properties对象
Properties字符串
XML
YAML

三、实现

对照上面的分析,我们封装的方法如下:
5个xxxToJsonNode 实现了原始数据到JsonNode的转换, 5个jsonNodeToxxx实现了JsonNode到结果数据的转换
在这里插入图片描述

核心代码:

 
import java.io.IOException;
import java.util.Properties;import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.json.JsonMapper;
import com.fasterxml.jackson.dataformat.javaprop.JavaPropsMapper;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLMapper;/*** JsonNodeUtils 转换工具* * @author 00fly**/
public class JsonNodeUtils
{private static JavaPropsMapper javaPropsMapper = new JavaPropsMapper();private static JsonMapper jsonMapper = new JsonMapper();private static XmlMapper xmlMapper = new XmlMapper();private static YAMLMapper yamlMapper = new YAMLMapper();// JsonNode对象转换为JSON、PROPERTIES、XML、YAML/*** jsonNode转json字符串* * @param jsonNode* @return*/public static String jsonNodeToJson(JsonNode jsonNode){return jsonNode.toPrettyString();}/*** jsonNode转properties字符串* * @param jsonNode* @return* @throws IOException*/public static String jsonNodeToPropsText(JsonNode jsonNode)throws IOException{return javaPropsMapper.writeValueAsString(jsonNode);}/*** jsonNode转properties对象* * @param jsonNode* @return* @throws IOException*/public static Properties jsonNodeToProperties(JsonNode jsonNode)throws IOException{return javaPropsMapper.writeValueAsProperties(jsonNode);}/*** jsonNode转xml字符串* * @param jsonNode* @return* @throws IOException*/public static String jsonNodeToXml(JsonNode jsonNode)throws IOException{return xmlMapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonNode);}/*** jsonNode转yaml* * @param jsonNode* @return* @throws IOException*/public static String jsonNodeToYaml(JsonNode jsonNode)throws IOException{return yamlMapper.writeValueAsString(jsonNode);}// JSON、PROPERTIES、XML、YAML转换为JsonNode对象/*** json转JsonNode* * @param jsonText* @return* @throws IOException*/public static JsonNode jsonToJsonNode(String jsonText)throws IOException{return jsonMapper.readTree(jsonText);}/*** properties对象转JsonNode* * @param properties* @return* @throws IOException*/public static JsonNode propsToJsonNode(Properties properties)throws IOException{return javaPropsMapper.readPropertiesAs(properties, JsonNode.class);}/*** properties字符串转JsonNode* * @param propText* @return* @throws IOException*/public static JsonNode propsToJsonNode(String propText)throws IOException{return javaPropsMapper.readTree(propText);}/*** xml转JsonNode* * @param xmlContent* @return* @throws IOException*/public static JsonNode xmlToJsonNode(String xmlContent)throws IOException{return xmlMapper.readTree(xmlContent);}/*** yaml转JsonNode* * @param yamlContent* @return* @throws IOException*/public static JsonNode yamlToJsonNode(String yamlContent)throws IOException{return yamlMapper.readTree(yamlContent);}
}

四、测试

下面的测试以json转换为propText、xml、yaml为例来说明,其他情况照猫画虎、以此类推, 能读代码的都是聪明人,哈哈!

import java.io.IOException;
import java.nio.charset.StandardCharsets;import org.apache.commons.io.IOUtils;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;import com.fly.core.utils.jackson.JsonNodeUtils;import lombok.extern.slf4j.Slf4j;/*** JsonNodeUtils测试*/
@Slf4j
public class JsonNodeUtilsTest
{static String jsonText;@BeforeAllpublic static void init(){try{Resource resource = new ClassPathResource("data.json");jsonText = IOUtils.toString(resource.getInputStream(), StandardCharsets.UTF_8);}catch (IOException e){log.error(e.getMessage(), e);}}@Testpublic void jsonToPropText()throws IOException{String propText = JsonNodeUtils.jsonNodeToPropsText(JsonNodeUtils.jsonToJsonNode(jsonText));log.info("jsonToPropText: {}", propText);}@Testpublic void jsonToXml()throws IOException{String xml = JsonNodeUtils.jsonNodeToXml(JsonNodeUtils.jsonToJsonNode(jsonText));log.info("jsonToXML: {}", xml);}@Testpublic void jsonToYaml()throws IOException{String yaml = JsonNodeUtils.jsonNodeToYaml(JsonNodeUtils.jsonToJsonNode(jsonText));log.info("jsonToYaml: {}", yaml);}
}

测试结果,就不放出来了。


大家可以根据需要选择方案,有任何问题和建议,都可以向我提问讨论,大家一起进步,谢谢!

-over-

http://www.yayakq.cn/news/629550/

相关文章:

  • 我做的网站怎么打开很慢阀门专业网站建设
  • 做网站设计挣钱吗广州建站工作室
  • 青海省建设厅建管处网站wordpress撰写
  • 营销型网站制作价格小白如何做网站
  • 做网站联系怎么制作二维码并自己编辑内容
  • 公司网站建设应注意什么ui设计的发展趋势
  • asp网站空间安卓app软件制作工具
  • 自己电脑做网站 路由器网站建设优化汕头
  • 怎样换网站关键词新公司网站建设分录
  • 做网站时需要FTP工具吗做网站上饶
  • 南宁门户网站学校建设网站前的市场分析
  • 网站建设数据库软件射阳建设局网站
  • 荆门城乡建设局网站2022年一建考试最新消息
  • 做外贸需要到外汇管理网站惠州最专业的网站建设公司
  • 济南泰安网站建设公司自助式网站
  • 信息技术做网站wordpress 3.6
  • 西安网站代维护最新网站建设合同
  • 个人建网站允许吗wordpress 知识库主题
  • 制作网站得多少钱vps 网站异常
  • 网站界面设计和ios移动界面设计的区别开网店的流程和步骤
  • 网站广告位设计无法使用wordpress
  • 木门行业网站该怎么做网站免费广告
  • 网站开发工作好找吗企业网站建设工作总结
  • 遂宁网站建设哪家好做视频的网站那几个盈利了
  • 网站快速上排名方法网站备案名称必须是公司名
  • 资金盘网站开发多少钱设计公司取名字大全集
  • 沈阳网站建设搜q479185700外包网有哪些
  • php 网站缩略图建立网站线上营销
  • 爱网站关键词查询工具wordpress+grace+破解
  • 网站开发 定制 合同郑州模板网站