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

用asp做网站课程湘潭网站优化公司

用asp做网站课程,湘潭网站优化公司,学院网站建设项目,域名备案做电影网站在我们的开发过程中#xff0c;接口响应一般都是使用的JSON格式#xff1b;随着我们接入的系统的增加#xff0c;以及开发需求的增加#xff0c;不乏出现一些使用XML解析的系统#xff0c;需要我们将response内容转换成XML的格式响应#xff0c;那么我们需要对此重新写个…在我们的开发过程中接口响应一般都是使用的JSON格式随着我们接入的系统的增加以及开发需求的增加不乏出现一些使用XML解析的系统需要我们将response内容转换成XML的格式响应那么我们需要对此重新写个接口吗 当然不我们可以通过增加yml配置的形式或者通过在接口上增加Type的方式进行XML格式的转换那么接下来我们要讨论的便是如何转换XML 我这边能提供的有俩种方式一种是比较简单直接的字符串拼接的方式 /*** 构建XML响应* 方式一简单粗暴直接使用字符串拼接** param value* param request* return*/public String buildResponseXML(Object value, Map response) {StringBuilder xmlBuilder new StringBuilder();try {String str ?xml version\1.0\ encoding\UTF-8\?;xmlBuilder.append().append(str).append().append(\n);buildXmlFromMap(response, xmlBuilder);} catch (Exception e) {}return xmlBuilder.toString().trim();}/*** 构建xml方法将map集合构建成XML格式** param map* param xmlBuilder*/private static void buildXmlFromMap(MapString, Object map, StringBuilder xmlBuilder) {for (Map.EntryString, Object entry : map.entrySet()) {String key entry.getKey();Object value entry.getValue();if (value instanceof Map) {// 如果值是一个 Map递归处理xmlBuilder.append().append(key).append();buildXmlFromMap((MapString, Object) value, xmlBuilder);xmlBuilder.append(/).append(key).append();} else {// 普通键值对xmlBuilder.append().append(key).append().append(value null ? : escapeXml(value.toString())).append(/).append(key).append();}}}/*** 将XML中的特殊字符转义** param value* return*/private static String escapeXml(String value) {return value.replace(, amp;).replace(, lt;).replace(, gt;).replace(\, quot;).replace(, apos;);} 这种方式比较简单直接就是将response的内容通过entrySet循环key作为xml的标签value作为标签中的值使用append直接输出 另一种是通过XML实现类直接进行转换这种对于复杂一点的项目效果比较好 /*** 构建XML响应* 方式二Document构建xml后Transformer转写** return* throws Exception*/public String buildXmlResponse(Map xmlMap) {try {// 创建 DocumentBuilderDocumentBuilderFactory factory DocumentBuilderFactory.newInstance();DocumentBuilder builder factory.newDocumentBuilder();// 创建 Document 对象代表整个 XML 文档Document document builder.newDocument();// 生成XML节点addNodesFromMap(document, null, xmlMap);// 转换 Document 为字符串return convertDocumentToString(document);} catch (Exception e) {throw ExceptionUtils.create(ErrorCodeEnum.SCIM_RESPONSE_IS_FAILED);}}/*** 公共方法从 Map 生成 XML 节点** param document Document 对象* param parent 父节点或根节点* param map Map 数据*/private void addNodesFromMap(Document document, Element parent, MapString, Object map) {for (Map.EntryString, Object entry : map.entrySet()) {String key entry.getKey();Object value entry.getValue();// 创建当前节点Element child document.createElement(key);// 处理value值if (value instanceof Map) {// 如果值是 Map递归创建子节点addNodesFromMap(document, child, (MapString, Object) value);} else if (value instanceof List) {child document.createElement(key);// 如果值是 List处理列表内容handleList(document, child, key, (ListObject) value);} else if (value instanceof HashSet) {List list new ArrayList((HashSet) value);child document.createElement(key);// 如果值是 List处理列表内容handleList(document, child, key, (ListObject) list);} else {// 如果值是普通对象直接设置文本内容child.appendChild(document.createTextNode(value ! null ? value.toString() : null));}// 判断是否存在父节点如果没有父节点说明是根节点if (parent null) {document.appendChild(child);} else {// 将子节点附加到父节点parent.appendChild(child);}}}/*** 处理 List 类型的值** param document Document 对象* param parent 父节点* param key 当前标签名* param list List 数据*/private void handleList(Document document, Element parent, String key, ListObject list) { // logger.info(当前List转换标签Key key);if (CollectionUtils.isEmptyCollection(list)) {return;}// 遍历list值for (Object item : list) {if (item instanceof String || item instanceof Number || item instanceof Boolean) {// 如果是简单类型直接创建子节点Element child document.createElement(key); // 子节点名称与 List 的 key 保持一致child.appendChild(document.createTextNode(item.toString()));parent.appendChild(child);} else if (item instanceof Map) {// 如果是 Map递归处理Element child document.createElement(key); // 子节点名称与 List 的 key 保持一致addNodesFromMap(document, child, (MapString, Object) item);parent.appendChild(child);}}}/*** 将 Document 对象转换为 XML 格式写出** param document* return* throws Exception*/private static String convertDocumentToString(Document document) throws Exception {// 使用 Transformer 将 Document 转换为字符串TransformerFactory factory TransformerFactory.newInstance();Transformer transformer factory.newTransformer();DOMSource domSource new DOMSource(document);StringWriter writer new StringWriter();StreamResult result new StreamResult(writer);transformer.transform(domSource, result);return writer.toString();} 以上就是response的JSON转为XML格式的方法
http://www.zqtcl.cn/news/60520/

相关文章:

  • 网站更换主机注意图片交易网站如何建设
  • 网站建设上佛山网站建设优化企业
  • 深圳公司网站建设哪里专业玄武网站制作收费报价
  • 网站首页设计说明代做网站和说明书
  • 自己想做网站怎么做网站建设 成本
  • 中国建设部官方网站监理转注册建设金融行业网站
  • 电子商务网站建设应该侧重哪方面网上有哪些购物平台
  • php网站开发工程师招聘网平台购物系统
  • 网址站天津关键词优化平台
  • 网站建立需要多少钱做招聘求职网站
  • 如何建网站运营网站想要网站导航推广
  • 网站备案修改域名wordpress 跳回80端口
  • 点击运行显示网站正在建设湘潭网站网站建设
  • 惠州网站搭建怎么做南阳响应式网站
  • 孟津网站建设给会所做网站
  • 几年前我为客户建设网站百度 网站建设
  • 网站建设推广专家搜索关键词的工具
  • 手机网站模板带后台聊城做网站公司聊城博达
  • wp如何做网站地图食品包装
  • 网站设计主色学校创业怎么做网站
  • 瑞安外贸网站建设深圳坪山网站制作公司
  • wordpress能做图片站政务服务网站建设整改报告
  • 游戏开发与网站开发就业情况cn的wordpress包
  • php 购物网站开发禁止ip直接打开网站
  • 企业网站优化应该怎么做电子商务网站设计与维护论文
  • 外贸上哪个网站开发客户服务器更改wordpress
  • 手机资讯类网站模板活动手机网站开发
  • 不要钱的ppt模板网站简单的视频制作软件推荐
  • 国外建设网站流程台州企业网站排名优化
  • 淘宝网站c#设计怎么做消防做设计有什么网站