针对日常工作中, 现有的格式化工具无法满足需求,自己开发一个JSON格式化工具.
追求目标: 展开所有能展开的数据
网址 http://fmt.infuq.com/
网站界面
不存在数值类型精度丢失问题
对比 https://www.json.cn , 该 http://fmt.infuq.com/ 有如下优点
1.如果 值是字符串JSON对象,依然可以对其进行格式化展开, 效果对比如下
样例数据
{"bizContent":"{\"businessOrderNo\":\"CK-250102-005021\",\"createTime\":\"2025-01-02T19:37:05.102\",\"stockChangeDetailsList\":[{\"availableQuantity\":199293.000000,\"availableSaleCount\":199293.000000,\"outFrozenQuantity\":0.000000,\"quantity\":1.000000,\"warehouseNo\":\"PDUK\",\"warehouseOwnerGoodsNo\":\"PDUK-0011-000160\"},{\"availableQuantity\":198992.000000,\"availableSaleCount\":198992.000000,\"outFrozenQuantity\":0.000000,\"quantity\":1.000000,\"warehouseNo\":\"PDUK\",\"warehouseOwnerGoodsNo\":\"PDUK-0011-000166\"},{\"availableQuantity\":199301.000000,\"availableSaleCount\":199301.000000,\"outFrozenQuantity\":0.000000,\"quantity\":1.000000,\"warehouseNo\":\"PDUK\",\"warehouseOwnerGoodsNo\":\"PDUK-0011-000167\"},{\"availableQuantity\":196765.000000,\"availableSaleCount\":196765.000000,\"outFrozenQuantity\":0.000000,\"quantity\":2.000000,\"warehouseNo\":\"PDUK\",\"warehouseOwnerGoodsNo\":\"PDUK-0011-000176\"},{\"availableQuantity\":99706.000000,\"availableSaleCount\":99706.000000,\"outFrozenQuantity\":0.000000,\"quantity\":1.000000,\"warehouseNo\":\"PDUK\",\"warehouseOwnerGoodsNo\":\"PDUK-0011-000213\"}],\"storageCategory\":1,\"storageType\":20}","enterpriseCode":"A00380","enterpriseId":404604069534330880,"enterpriseName":"企业","messageType":"STOCK_CHANGE","traceId":"574318628317786112","warehouseCode":"PDUK","warehouseName":"测试仓"}
格式化效果如下
https://www.json.cn 无法对值是字符串JSON对象类型格式化
http://fmt.infuq.com/ 可以对值是字符串JSON对象类型格式化
- 第1点的值是字符串JSON对象, 它的双引号都转义了, 如果这个字符串JSON对象的双引号没有转义的话
样例数据
{"responseBody":"{"traceId":"OMS3N51874714074049683456","apiRecordCode":"AIRRsdmjJb3p250102150720513"}","responseTime":"2025-01-02 15:07:20","requestTime":"2025-01-02 15:07:20","requestBody":"{"traceId":"OMS3N51874714074049683456","enterpriseCode":"BEL8P90K1654503232043","body":"{\"warehouseGoodsChangeList\":[{\"returnQuantity\":1,\"isSetMeal\":0,\"waitReceiptCanNumber\":0,\"goodsValue\":97.41,\"goodsOwnerBusinessNo\":\"BEW6HQ4Z1731397447998\",\"extMap\":{\"outTaxRateCode\":{\"value\":\"13%\",\"key\":\"VATR1\"}},\"goodsUnitPrice\":98,\"receiptCanNumber\":1,\"warehouseGoodsBusinessNo\":\"STOCK20241223211826298oPlF\",\"orderItemCode\":\"OI20241228104041092TO6FO0\",\"waitShipCanNumber\":0}],\"createBy\":94529183481859,\"returnOrderCode\":\"SC2N723E20250102134249911\",\"customerOrderCode\":\"DWCC1E2J20241228104042123\",\"brandCode\":\"BEL8P90K1654503232043\"}","warehouseCode":"HXEF","businessNo":"SC2N723E20250102134249911","enterpriseId":59943472791617,"receiveType":5,"thirdEnterpriseId":294173101183524864,"platformCode":"APP-00006"}"}
格式化效果如下
https://www.json.cn 对 “key”: “{“key1”:“value2”}” 格式化的数据直接报错
http://fmt.infuq.com/ 可以格式化
3.针对第1点和第2点, 对值是数组类型的格式也支持
4.可以添加备注,增加tab等, 不用再打开多个浏览器的tab
5.支持对URL进行转义
样例数据
[{"requestType":5,"apiRecordCode":"AIRPfsvMxLAL250102200720098","bussType":3,"app":"APP-00006","warehouseCode":"UFYA","warehouseName":"测试仓库","businessNo":"FH-250102-005494","requestBody":"%7B%22actionTime%22%3A%222025-01-02+20%3A07%3A20%22%2C%22message%22%3A%22%E6%88%90%E5%8A%9F%22%7D"}]
6.支持从其他网站跳转到 fmt.infuq.com 并格式化要格式化的数据
http://fmt.infuq.com/?data=%7B%22code%22%3A200,%22data%22%3A%7B%22resp_code%22%3A200,%22resp_msg%22%3A%22%E6%88%90%E5%8A%9F%22%7D%7D&remark=%E6%8E%A8%E9%80%81%E5%93%8D%E5%BA%94%E5%86%85%E5%AE%B9
1.GET请求
2.使用data携带需要格式化的数据
3.使用remark携带备注信息
4.将需要格式化的数据进行编码
let url = 'http://fmt.infuq.com?data=' + encodeURIComponent(data) + '&remark=' + remark
window.open(url)