更新记录
1.0.0(2025-11-16) 下载此版本
--首次发布,支持多种数据结构转换
平台兼容性
uni-app(3.6.14)
| Vue2 | Vue2插件版本 | Vue3 | Vue2插件版本 | Chrome | Chrome插件版本 | Safari | Safari插件版本 | app-vue | app-vue插件版本 | app-nvue | app-nvue插件版本 | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 | 鸿蒙插件版本 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | 1.0.0 | √ | 1.0.0 | √ | 1.0.0 | √ | 1.0.0 | √ | 1.0.0 | √ | 1.0.0 | 5.0 | 1.0.0 | 12 | 1.0.0 | √ | 1.0.0 |
| 微信小程序 | 微信小程序插件版本 | 支付宝小程序 | 支付宝小程序插件版本 | 抖音小程序 | 抖音小程序插件版本 | 百度小程序 | 百度小程序插件版本 | 快手小程序 | 快手小程序插件版本 | 京东小程序 | 京东小程序插件版本 | 鸿蒙元服务 | 鸿蒙元服务插件版本 | QQ小程序 | QQ小程序插件版本 | 飞书小程序 | 飞书小程序插件版本 | 快应用-华为 | 快应用-华为插件版本 | 快应用-联盟 | 快应用-联盟插件版本 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | 1.0.0 | √ | 1.0.0 | √ | 1.0.0 | √ | 1.0.0 | √ | 1.0.0 | √ | 1.0.0 | √ | 1.0.0 | √ | 1.0.0 | √ | 1.0.0 | √ | 1.0.0 | √ | 1.0.0 |
uni-app x(3.6.14)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| - | - | - | - | - | - |
其他
| 多语言 | 暗黑模式 | 宽屏模式 |
|---|---|---|
| √ | √ | √ |
hy-data-converter
一个功能强大的数据格式转换 uni-app 插件,支持 JSON、XML、YAML、CSV、查询字符串、Base64 等多种格式的相互转换。
✨ 特性
- 🚀 支持多种数据格式转换 - JSON、XML、YAML、CSV、查询字符串、Base64 等
- 📦 零依赖,轻量级 - 不依赖任何第三方库,体积小巧
- 🛡 TypeScript 类型支持 - 完整的类型定义,提供更好的开发体验
- 💪 支持 Vue 2 和 Vue 3 - 完美兼容不同版本的 Vue
- 🔧 高度可配置 - 丰富的配置选项,满足各种使用场景
- 🎯 完善的错误处理 - 内置数据验证和错误处理机制
- 🌐 跨平台支持 - 支持 uniapp 和 uniappx,兼容所有平台
📋 支持的格式
- JSON - JavaScript 对象表示法
- XML - 可扩展标记语言
- YAML - YAML 不是标记语言
- CSV - 逗号分隔值
- 查询字符串 (Query String) - URL 查询参数格式
- Base64 - Base64 编码/解码
🚀 快速开始
1. 安装插件
在 main.js (Vue 3) 或 main.uts (uniappx) 中安装插件:
import { createApp } from 'vue'
import App from './App.vue'
import hyDataConverter from '@/uni_modules/hy-data-converter/js_sdk/index.js'
const app = createApp(App)
app.use(hyDataConverter, {
strictMode: false,
throwOnError: false
})
app.mount('#app')
2. 在页面中使用
选项式 API (Vue 2/3)
export default {
methods: {
convertData() {
// JSON 转 XML
const xml = this.$hyConverter.jsonToXml({
user: { name: '张三', age: 25 }
})
// XML 转 JSON
const json = this.$hyConverter.xmlToJson('<user><name>李四</name></user>')
// 通用转换方法
const result = this.$hyConverter.convert(
'name=张三&age=25',
'querystring',
'json'
)
}
}
}
组合式 API (Vue 3)
import { getCurrentInstance } from 'vue'
export default {
setup() {
const { proxy } = getCurrentInstance()
const convertData = () => {
const yaml = proxy.$hyConverter.jsonToYaml({ key: 'value' })
const json = proxy.$hyConverter.yamlToJson(yaml)
}
return { convertData }
}
}
直接导入使用
import { HyDataConverter } from '@/uni_modules/hy-data-converter/js_sdk/index.js'
const converter = new HyDataConverter()
const result = converter.jsonToXml({ data: 'test' })
📖 API 文档
通用转换方法
convert(data, fromFormat, toFormat, options)
通用转换方法,支持所有格式之间的转换。
参数:
data(any): 要转换的数据fromFormat(string): 源格式,可选值:'json', 'xml', 'yaml', 'csv', 'querystring', 'base64'toFormat(string): 目标格式options(object, 可选): 转换选项
返回值: 转换后的数据
示例:
// JSON 转 XML
const xml = this.$hyConverter.convert(
{ name: '张三', age: 25 },
'json',
'xml'
)
// CSV 转 JSON
const json = this.$hyConverter.convert(
'id,name\n1,张三',
'csv',
'json'
)
快捷方法
JSON 相关
jsonToXml(data, options)- JSON 转 XMLjsonToYaml(data, options)- JSON 转 YAMLjsonToCsv(data, options)- JSON 转 CSVjsonToQueryString(data, options)- JSON 转查询字符串
XML 相关
xmlToJson(data, options)- XML 转 JSON
YAML 相关
yamlToJson(data, options)- YAML 转 JSON
CSV 相关
csvToJson(data, options)- CSV 转 JSON
查询字符串相关
queryStringToJson(data, options)- 查询字符串转 JSON
Base64 相关
encodeBase64(data)- Base64 编码decodeBase64(data)- Base64 解码
工具方法
格式相关
getSupportedFormats()- 获取所有支持的格式列表validateFormat(format)- 验证格式是否支持getSupportedConversions()- 获取所有支持的转换组合
数据处理
formatJson(json, indent)- 美化 JSON 输出minifyJson(json)- 压缩 JSONisValidJson(str)- 验证 JSON 格式deepClone(obj)- 深度克隆对象detectDataType(data)- 检测数据类型
HTML 处理
escapeHtml(html)- 转义 HTML 特殊字符unescapeHtml(html)- 反转义 HTML 特殊字符
批量操作
batchConvert(data, conversions, options)- 批量转换数据
示例:
// 批量转换
const conversions = [
{ from: 'json', to: 'xml' },
{ from: 'json', to: 'yaml' },
{ from: 'json', to: 'csv' }
]
const results = this.$hyConverter.batchConvert(
{ name: 'test', value: 123 },
conversions
)
⚙️ 配置选项
全局配置
在安装插件时可以设置全局配置:
app.use(hyDataConverter, {
strictMode: false, // 严格模式,默认 false
throwOnError: false // 出错时抛出异常,默认 false
})
格式特定选项
XML 转换选项
{
rootName: 'root', // 根元素名称
attributePrefix: '@', // 属性前缀
textNodeName: '#text', // 文本节点名称
ignoreAttributes: false // 是否忽略属性
}
YAML 转换选项
{
indent: 2, // 缩进空格数
skipInvalid: false // 跳过无效数据
}
CSV 转换选项
{
delimiter: ',', // 分隔符
headers: true, // 是否包含表头
quoteFields: true, // 是否用引号包裹字段
dynamicTyping: true // 动态类型转换
}
查询字符串转换选项
{
encode: true, // 是否编码
decode: true, // 是否解码
arrayFormat: 'brackets', // 数组格式:'brackets' | 'indices' | 'comma'
parseNumbers: true, // 解析数字
parseBooleans: true // 解析布尔值
}
💡 使用示例
JSON 转 XML
const jsonData = {
user: {
id: 1,
name: "张三",
profile: {
age: 25,
city: "北京"
}
}
}
const xml = this.$hyConverter.jsonToXml(jsonData, {
rootName: 'response',
attributePrefix: '@'
})
// 输出:
// <response>
// <user>
// <id>1</id>
// <name>张三</name>
// <profile>
// <age>25</age>
// <city>北京</city>
// </profile>
// </user>
// </response>
XML 转 JSON
const xmlData = `
<user>
<id>1</id>
<name>李四</name>
<email>lisi@example.com</email>
</user>
`
const json = this.$hyConverter.xmlToJson(xmlData)
// 输出:{ user: { id: 1, name: '李四', email: 'lisi@example.com' } }
JSON 转 YAML
const jsonData = {
app: {
name: "我的应用",
version: "1.0.0",
settings: {
theme: "dark",
language: "zh-CN"
}
}
}
const yaml = this.$hyConverter.jsonToYaml(jsonData)
CSV 转 JSON
const csv = `id,name,email
1,张三,zhangsan@example.com
2,李四,lisi@example.com
3,王五,wangwu@example.com`
const json = this.$hyConverter.csvToJson(csv, {
headers: true,
dynamicTyping: true
})
// 输出:
// [
// { id: 1, name: '张三', email: 'zhangsan@example.com' },
// { id: 2, name: '李四', email: 'lisi@example.com' },
// { id: 3, name: '王五', email: 'wangwu@example.com' }
// ]
Base64 编码/解码
// 编码
const originalData = {
message: "Hello, Base64!",
timestamp: new Date().toISOString()
}
const encoded = this.$hyConverter.encodeBase64(originalData)
// 解码
const decoded = this.$hyConverter.decodeBase64(encoded)
查询字符串转换
// JSON 转查询字符串
const params = {
search: "uniapp",
page: 1,
limit: 20,
filters: ["recent", "popular"]
}
const queryString = this.$hyConverter.jsonToQueryString(params, {
arrayFormat: 'brackets'
})
// 输出:search=uniapp&page=1&limit=20&filters[]=recent&filters[]=popular
// 查询字符串转 JSON
const json = this.$hyConverter.queryStringToJson(queryString)
工具方法示例
// 美化 JSON
const formatted = this.$hyConverter.formatJson({ name: 'test', age: 25 }, 2)
// 压缩 JSON
const minified = this.$hyConverter.minifyJson({ name: 'test', age: 25 })
// 验证 JSON
const isValid = this.$hyConverter.isValidJson('{"name":"test"}') // true
// 深度克隆
const cloned = this.$hyConverter.deepClone({ nested: { data: 'value' } })
// 检测数据类型
const type = this.$hyConverter.detectDataType([1, 2, 3]) // 'array'
🛡 TypeScript 支持
插件提供完整的 TypeScript 类型定义:
import type { HyDataConverter, ConverterOptions } from '@/uni_modules/hy-data-converter/types/index.d.ts'
// 使用类型
const converter: HyDataConverter = new HyDataConverter()
const options: ConverterOptions = {
strictMode: false,
throwOnError: false
}

收藏人数:
下载插件并导入HBuilderX
下载插件ZIP
赞赏(0)
下载 41
赞赏 0
下载 11077802
赞赏 1804
赞赏
京公网安备:11010802035340号