创建星号分隔字符串的JavaScript对象
我有三个字符串。
var ids = "1*2*3"; var Name ="John*Brain*Andy"; var Code ="A12*B32*C38";
我想创建它的JavaScript对象。
JSON对象只是一个字符串,因此它将是:
var json = '{"ids":"'+ids+'","Name":"'+Name+'","Code":"'+Code+'"}';
如果要将字符串转换为字符串数组:
var json = '{"ids":["'+ids.replace(/\*/g,'","')+'"],"Name":["'+Name.replace(/\*/g,'","')+'"],"Code":["'+Code.replace(/\*/g,'","')+'"]}';
如果你根本不是为了JSON,而是实际上是一个Javascript对象,它将是:
var obj = { ids: ids.split('*'), Name: Name.split('*'), Code: Code.split('*') };
根据你的描述“我希望数组的第一项有三个道具,即Id,名称和代码,值分别为1,John,A12。” 然而,它会完全不同:
var Ids = ids.split('*'), names = Name.split('*'), codes = Code.split('*'); var arr = []; for (var i = 0; i < Ids.length; i++) { arr.push({ Id: Ids[i], name: names[i], code: codes[i] }); }
如果你想要它作为JSON,它将是:
var Ids = ids.split('*'), names = Name.split('*'), codes = Code.split('*'); var items = []; for (var i = 0; i < Ids.length; i++) { items.push('{"Id":"'+Ids[i]+'","name":"'+names[i]+'","code":"'+codes[i]+'"}'); } json = '[' + items.join(',') + ']';
(注意:最后一个代码仅在字符串不包含任何引号时才能正常工作,否则在放入字符串时必须对它们进行转义。)
我发现Guffa给出了一个很好的答案。 我只想避免手动JSON序列化,因为Name
属性可能有一个必须转义的特殊字符。 所以我建议对Guffa的建议进行最小的改动并使用JSON.stringify
(参见http://www.json.org/js.html )
var Ids = ids.split('*'), names = Name.split('*'), codes = Code.split('*'); var arr = []; for (var i = 0; i < Ids.length; i++) { arr.push({ Id: Ids[i], Name: names[i], Code: codes[i] }); } var result = JSON.stringify(arr);