通过Alfred一键格式化剪贴板中的JSON

之前的做法

经常要请求网络 进行服务端联调,Server返回有部分json,我们要快速知道对方json里特定字符串数据。通用做法就是复制出来结果,然后到特定网站上格式化一下,然后拿出来看一下,找到特定位置。。等等。

存在的问题

  • 剪贴板中有包含其他除了JSon的部分(需要通过脚本过滤出JSon字符串)
  • 找到json部分 需要格式化一下(美观、好查、方便 快捷)

解决方案

百度了下找到了有人类似的解决方法如下:


通过Alfred一键格式化剪贴板中的JSON_第1张图片
image

思路分两步。

  • 第一步拿到剪贴板的数据,抽到JSon字符串 再扔进剪贴板
    具体抽取方法 从整个剪贴板中 找到第一个 “{" 再找到最后一个 “}”

  • 再对剪贴板的数据进行快速格式化

alfred操作步骤

通过Alfred一键格式化剪贴板中的JSON_第2张图片
image.png

至于alfred是啥 不做多介绍。可以定义快捷键直接一键操作 不用大动干戈,执行脚本等。

第一步脚本如下:

import sys
import os
import subprocess

p = subprocess.Popen(['pbpaste'], stdout=subprocess.PIPE)
retcode = p.wait()
data = p.stdout.read()
firstBrace = data.index("{")
lastBrace = data.rindex("}") + 1
strNeedFormatter = data[firstBrace:lastBrace]
p = subprocess.Popen(['pbcopy'], stdin=subprocess.PIPE)
p.stdin.write(strNeedFormatter)
p.stdin.close()
p.communicate()

第二步脚本如下:(直接将剪贴板的数据格式化 再扔进剪贴板)

#!/usr/bin/env bash
pbpaste | python -m json.tool  > temp.txt
cat temp.txt | pbcopy

最后得到的效果

从剪贴板复制任意包含json的,按一下快捷键 剪贴板的内容神奇的发生了变化(已经去除无用内容,并且已经格式化) 目前暂定快捷键是 ctrol+option+comoand+j.

alfred下载地址

祝你好运!!一键格式化
http://p1yfcnlay.bkt.clouddn.com/formatterClipboardJson.alfredworkflow

你可能感兴趣的:(通过Alfred一键格式化剪贴板中的JSON)