Sublime如何将XML格式转化为更易读的JSON格式?一键互转神操作

P粉328763957

P粉328763957

2026-06-29

629人浏览

原创

sublime text 不支持 xml→json 一键转换,必须依赖 python 脚本(如 xmltodict)或在线工具;主流插件无此功能,强行用文本包裹法会导致属性丢失、数组塌陷、语义错乱。

sublime如何将xml格式转化为更易读的json格式?一键互转神操作

Sublime Text 本身不支持 XML → JSON 一键转换,所谓“一键互转”是误导;必须借助外部工具或脚本,否则生成的 JSON 极大概率结构错乱、丢失属性、无法解析。

为什么不能靠插件直接转?

Sublime 的主流插件(如 Pretty JSON、XML Tools)都不提供 XML → JSON 转换命令。你搜 Pretty JSON: Convert XML to JSON 或类似关键词,命令面板里根本不会出现——这不是你漏装插件,而是功能压根不存在。

原因很实际:xmltodict 这类库需要显式调用,而 Sublime 插件生态里几乎没有维护良好的、能自动调起 Python 环境并传参的 XML→JSON 封装。所谓“神操作”多是把 XML 当纯文本加个 {} 包裹,结果连 @attr#text 都没处理,JSON 解析直接报错。

  • XML 属性(如 <item id="123"></item>)在 JSON 中需映射为 {"@id": "123"},插件不处理就丢数据
  • 同名子节点组成的数组(如多个 <child></child>)必须被识别为 list,否则只保留最后一个
  • 文本内容与子节点混存时(如 <name>Tom<age>25</age></name>),需拆出 "#text": "Tom" 字段,否则语义崩坏

真正可用的方案:用 Python 脚本 + Build System

这是目前 Sublime 内最稳定、可控、可复现的方式。前提是本地已安装 Python 3.7+,且能运行 pip install xmltodict

步骤如下:

php版微信js-sdk支付接口类
php版微信js-sdk支付接口类

php版微信js-sdk支付接口类

下载
  • 新建文件,保存为 xml2json.py,内容为:
import sys
import xmltodict
import json

try:
    with open(sys.argv[1], 'r', encoding='utf-8') as f:
        xml = f.read()
    parsed = xmltodict.parse(xml, process_namespaces=False)
    print(json.dumps(parsed, indent=2, ensure_ascii=False))
except Exception as e:
    print(f"Error: {e}")
    sys.exit(1)
  • 在 Sublime 中打开 Tools → Build System → New Build System
  • 粘贴以下内容并保存为 XML2JSON.sublime-build(路径默认在 Packages/User/):
{
    "shell_cmd": "python \"${packages}/User/xml2json.py\" \"$file\"",
    "file_regex": "Error: (.*)",
    "selector": "text.xml"
}
  • 打开 XML 文件 → 右下角确认语法为 XML → 按 Ctrl+B(Windows/Linux)或 Cmd+B(Mac)
  • 输出面板会显示转换后的 JSON,复制即可;若报错,错误信息会定位到具体异常点

不想写脚本?在线工具更省事

如果你只是偶尔转换、不涉及敏感数据、文件小于 2MB,直接用在线工具反而更快、更可靠:

  • https://www.freeformatter.com/xml-to-json-converter.html —— 支持命名空间、属性前缀、数组推断,选项清晰
  • https://codebeautify.org/xmltojson —— 可切换输出风格(如是否展开 #text、是否保留注释)
  • 粘贴 XML → 点击 Convert → 复制结果 → 在 Sublime 中新建文件 → Ctrl+Shift+P 输入 Pretty JSON: Beautify 格式化

注意:别用“Sublime 插件市场搜 XML to JSON”出来的那些老插件,多数最后调用的是过期的 JS 库或返回空结果,2026 年仍活跃维护的仅限命令行/Python 方案。

关键细节容易被忽略

无论用脚本还是在线工具,以下三点不检查,90% 的转换结果都不可用:

  • XML 文件必须有且仅有一个根节点,<a></a><b></b> 这种片段会解析失败
  • 确保 XML 是 UTF-8 编码(不是 UTF-8 with BOM),否则 xmltodict.parse() 会抛 UnicodeDecodeError
  • 如果原始 XML 含 CDATA 或特殊实体(如  ),在线工具通常能自动解码,但自写脚本需额外加 xmltodict.parse(..., hughes=True) 或预处理

真正“易读”的 JSON 不是缩进好看就行,而是字段语义对齐、数组不塌陷、属性不丢失——这得靠底层解析逻辑,不是编辑器快捷键能解决的。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.01

2808

5

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

2024.08.01

3386

7

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

2024.11.28

1794

7

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

2023.06.20

1880

8

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.28

912

5

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.03

1154

5

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

2023.08.17

7910

11

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

2023.09.01

639

4

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.04

1235

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程