Sublime xml to json and json to xml =============================== convert xml file to json file or json file to xml file. ## Installation: - you should use [sublime package manager][0] - use `cmd+shift+P` then `Package Control: Install Package` - look for `xml2json` and install it. - OR, Clone or unpack to "xml2json" folder inside "Packages" of your Sublime installation. ## Usage : - use `cmd+shift+P` then `xml2json` or `json2xml` (opens result in a new unsaved buffer) - use `cmd+shift+P` then `xml2json (Save to file)` or `json2xml (Save to file)` to save next to the source file (e.g. `abc.xml` -> `abc.json`, `abc.json` -> `abc.xml`); if the target exists you will be asked whether to overwrite, and choosing not to overwrite leaves the result in an unsaved buffer - use `cmd+shift+P` then `Pretty JSON`, `Pretty XML`, `Compact JSON` or `Compact XML` to format the current buffer without saving - or goto menubar `Tools` then `xml2json` - or bind some key in your user key binding: ```js { "keys": ["ctrl+alt+shift+j"], "command": "xml2json" }, { "keys": ["ctrl+alt+shift+l"], "command": "json2xml" } ``` ## Settings - `empty_tag_style`: how empty tags are written when generating XML. `compact` (``, default), `spaced` (``), `expanded` (``). - `pretty_json_indent`: indentation size for pretty JSON (default `2`). - `pretty_xml_indent`: indentation size for pretty XML (default `2`). - `default_conversion_pretty`: whether conversion commands default to pretty (`true`/`"pretty"`) or compact (`false`/`"compact"`); default `true`. - `json_ensure_ascii`: whether to escape non-ASCII when emitting JSON (default `false`). - `json_sort_keys`: whether to sort keys when emitting JSON (default `false`). - `normalize_attribute_text_pairs`: when converting XML to JSON, convert simple attribute/text pairs (e.g., `{"@name": "...", "#text": "..."}`) into `{name: "...", value: "..."}` (default `true`). - `attribute_text_value_key`: key name to store text content when `normalize_attribute_text_pairs` is enabled (default `"value"`). - `default_xml_root_name`: fallback root element name when wrapping JSON that lacks a single root (default `"root"`). - `include_xml_declaration`: include `` when converting JSON to XML (default `true`). - `line_ending`: line endings for generated output: `auto` (preserve from source), `unix` (`\n`), `windows` (`\r\n`), `mac` (`\r`) (default `auto`). - `ensure_final_newline`: ensure generated output ends with a newline (default `true`). - `trim_trailing_whitespace`: trim trailing spaces/tabs on generated lines (default `true`; removes spaces after commas in pretty JSON). You can adjust plugin settings and shortcuts via `Sublime Text` -> `Settings` -> `Package Settings` -> `xml2json` -> `Settings` and `Key Bindings`. [0]: http://wbond.net/sublime_packages/package_control