之前的做法
经常要请求网络 进行服务端联调,Server返回有部分json,我们要快速知道对方json里特定字符串数据。通用做法就是复制出来结果,然后到特定网站上格式化一下,然后拿出来看一下,找到特定位置。。等等。
存在的问题
- 剪贴板中有包含其他除了JSon的部分(需要通过脚本过滤出JSon字符串)
- 找到json部分 需要格式化一下(美观、好查、方便 快捷)
解决方案
百度了下找到了有人类似的解决方法如下:
思路分两步。
第一步拿到剪贴板的数据,抽到JSon字符串 再扔进剪贴板
具体抽取方法 从整个剪贴板中 找到第一个 “{" 再找到最后一个 “}”再对剪贴板的数据进行快速格式化
alfred操作步骤
至于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