【问答系列】如何对后端返回的json格式化输出并且高亮代码

5 篇文章 0 订阅

一、问题:后端返回的json没有格式化,想格式化高亮该json并在网页中显示它

最近有同学问我这个问题:

问题

他的问题就是,后端返回的json没有格式化,想格式化高亮该json并在网页中显示它。

下面的是后端返回的json,没有做任何处理:

期望的效果

就像这样,期望的效果:

期望的效果

即左侧是希望看到的效果,右侧是格式化了但是没有代码高亮的效果。

所以以上就需要分2步来解决:1、格式化输出 2、代码高亮

二、json格式化输出的方法

如果你有一个未格式化的 JSON 字符串,并且想使用 JavaScript 来格式化和美化它,你可以使用内置的 JSON 对象的 stringify() 方法。这个方法接受一个JSON对象并将其转换成格式化后的字符串。

以下是使用 JavaScript 格式化美化 JSON 的示例代码:

// 未格式化的 JSON 字符串
var unformattedJson = '{"name":"John","age":30,"city":"New York"}';

// 将 JSON 字符串解析为对象
var jsonObject = JSON.parse(unformattedJson);

// 将对象转换为格式化后的 JSON 字符串
var formattedJson = JSON.stringify(jsonObject, null, 2);

console.log(formattedJson);

打印输出的结果即为:

格式化了但是未高亮的效果

代码解读:

JSON.stringify(jsonObject, null, 2);

  1. 第一个参数表示需要格式化的JSON对象(非字符串)
  2. 第二个参数是一个可选的替代函数,用于过滤和修改对象属性的值。在这个示例中,我们传递了 null,表示不进行任何替代操作
  3. 第三个参数是一个可选的空格参数,用于指定缩进的空格数量或缩进字符串。在示例中,我们传递了 2,表示每级缩进两个空格。

这样就实现了json格式化输出。接着我们来解决第二个问题,即给代码高亮着色。

三、给代码高亮着色

高亮代码其实有很多种第三方库,常用的有highlight.jsPrism.js等。用法大同小异,接下来就以后面的这个库为例看看怎么使用。

直接在网页中使用:

<!DOCTYPE html>
<html>
<head>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs/themes/prism.css" />
</head>
<body>
  <pre>
    <code class="language-javascript">
    {
      "name": "John",
      "age": 30,
      "city": "New York"
    }
    </code>
  </pre>

  <script src="https://cdn.jsdelivr.net/npm/prismjs/prism.js"></script>
</body>
</html>

你将上面的代码复制到本地html,打开即可看到效果。

最终的效果

上面的jscss引用的是外部的cdn,如果你想让JS文件跟着你的项目走,你也可以直接打开以上链接,然后将其另存为保存到和html同一级目录,记得改下路径为相对路径。

image-20230703142736642

如果你要将高亮使用到前端工程项目中,即通过npm的方式来使用,它也提供了对应的方式。

具体可参考其官网:https://prismjs.com/

如果你在web前端开发、面试、前端学习路线有困难可以加我V:imqdcnn。免费答疑,行业深潜多年的技术牛人帮你解决bug。

祝你能成为一名优秀的WEB前端开发工程师!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
APIJSON是一种专为API而生的JSON网络传输协议,以及基于这套协议实现的ORM库。 为 简单的增删改查、复杂的查询、简单的事务操作 提供了完全自动化的API。 能大幅降低开发和沟通成本,简化开发流程,缩短开发周期。 适合中小型前后端分离的项目,尤其是 BaaS、Serverless、互联网创业项目和企业自用项目。 通过自动化API,前端可以定制任何数据、任何结构! 大部分HTTP请求后端再也不用写接口了,更不用写文档了! 前端再也不用和后端沟通接口或文档问题了!再也不会被文档各种错误坑了! 后端再也不用为了兼容旧接口写新版接口和文档了!再也不会被前端随时随地没完没了地烦了! 特点功能: 1、在线解析 自动生成接口文档,清晰可读永远最新 自动校验与格式化,支持高亮和收展 自动生成各种语言代码,一键下载 自动管理与测试接口用例,一键共享 自动给请求JSON加注释,一键切换 2、对于前端 不用再向后端催接口、求文档 数据和结构完全定制,要啥有啥 看请求知结果,所求即所得 可一次获取任何数据、任何结构 能去除重复数据,节省流量提高速度 3、对于后端 提供通用接口,大部分API不用再写 自动生成文档,不用再编写和维护 自动校验权限、自动管理版本、自动防SQL注入 开放API无需划分版本,始终保持兼容 支持增删改查、模糊搜索、正则匹配、远程函数等

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值