使用jquery或javascript将逗号分隔的键和值字符串转换为对象
Comma Separated Key and Value string to Object using jquery or javascript
我使用如下JavaScript读取HTML元素的属性:
<table data-option="pageSize:10, pageNumber:1, rowNumber:true"></table>
我会有一个这样的字符串:
attrs="pageSize:10, pageNumber:1, rowNumber:true";
我有一个键值JavaScript对象,如下所示:
obj={pageSize:12, pageNumber:1, rowNumber:true}
我想将我的属性转换为obj.这样的对象
您可以自己迭代并创建对象
var attr = $('table').data('option');
var obj = {};
$.each(attr.split(','), function(index, item) {
var parts = $.map(item.split(':'), function(part) {
part = $.trim(part);
if ( +part == part ) return +part
else if ( part === 'true' ) return true
else if ( part === 'false') return false
else return part;
});
obj[parts[0]] = parts[1];
});
var attr = $('table').data('option');
var obj = {};
$.each(attr.split(','), function(index, item) {
var parts = $.map(item.split(':'), function(part) {
part = $.trim(part);
if ( +part == part ) return +part
else if ( part === 'true' ) return true
else if ( part === 'false') return false
else return part;
});
obj[parts[0]] = parts[1];
});
document.body.innerHTML = '<pre>' + JSON.stringify(obj, null, 4) + '</pre>';
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table data-option="pageSize:10, pageNumber:1, rowNumber:true"></table>
选项1
存储整个json编码的字符串。
选项2
要将其从字符串转换为具有JSON.parse
的对象,需要使用双引号。
使用正则表达式添加此处的双引号,我们得到了所需的结果:
attrs = ("{" + attrs + "}").replace(/([{,])('s*)([A-Za-z0-9_'-]+?)'s*:/g,'$1"$3":');
var obj = JSON.parse(attrs);
UPD:
正如epascarelo所提到的,如果您有未引用的字符串值,如name: Jack
,这种方法显然会失败。但如果你在那里放原始字符串,请注意它们可能包含逗号或空格或其他什么,所以你最好引用它们
相关文章:
- 如何使用javascript在JSON中动态获取键和值
- 通过angularjs迭代多个字典中的键和值
- JavaScript JSON关联对象键和值都作为日期时间戳
- 使用下划线将键和值的两个数组合并到一个对象中
- jQuery动态更新数据键和值
- 我想重新排列我的数组和其他数组一样,这个数组是键和值
- 在javascript中解析json对象以获取键和值
- 如何为json键和值提供工具提示消息
- 使用JSON键和值动态创建一个表
- 将对象完全转换为键和值的数组:更好的解决方案
- 确定html属性键和值的角度指令
- Javascript移除已知值的键和值数组
- 如何循环json数组以获取javascript中的键和值
- 如何将用户定义的键和值添加到数组中
- 显示关联阵列中所有元素的键和值
- 使用 javascript 从由管道分隔的字符串中提取键和值
- 使用jquery或javascript将逗号分隔的键和值字符串转换为对象
- 使用包含属性的键和值的字符串创建数组
- 当键和值都是字符串时,返回对象键和值
- 如何动态框架Json对象与动态键和值字符串