js脚本 string转object求救。

「已注销」 2016-07-08 09:50:48
首先,JSON转换的肯定不行,试过了
是这样的。

类似
{"username":"小明","age":"15"},{"username":"小花","age":"14"},{"username":"老师","age":"29"}
这样一个串字符,怎么转为object

注意:
module.exports.toObject = function(str){
return (new Function('return ' + str))();
};
用这种方式转,只能得到[object,object],数据不完整,后面两个小花和老师的数据丢失了

麻烦各位达人了
...全文
420 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
___NULL 2016-07-23
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:
var arr = JSON.parse("["+str+"]");
最合理的是这个,以 json 对象进行访问。
荒牧 2016-07-22
  • 打赏
  • 举报
回复
引用 4 楼 u013522668 的回复:
完整的问题应该是这样的 现在有个值 bbb=[data0,data1,data2]; 其中data0,data1,data2都是object (格式也为{"XXX":"kkk"}这个样子的) 现在有另外一个值 data3={"username":"小明","age":"15"},{"username":"小花","age":"14"},{"username":"老师","age":"29"}; data3也为object 怎么使得 bbb=[data0,data1,data2,{"username":"小明","age":"15"},{"username":"小花","age":"14"},{"username":"老师","age":"29"}]
楼主的意思是不是数据里面保留的还是字符串 如果是这样,那就恶心一点 var dataArr =data3.split(/[^"],[^"]/); 再将拆分后字符串数组处理一下push到数据里面去呗 如: var tmp = dataArr[i]; if(dataArr[i].indexOf("{") == -1){ tmp = "{" + tmp; } if(dataArr[i].indexOf("}") == -1){ tmp = tmp + "}"; } bbb.push( tmp); 请自行加入遍历代码
FrinkLn 2016-07-22
  • 打赏
  • 举报
回复
数组合并方法一大把
Aomr_Dark 2016-07-22
  • 打赏
  • 举报
回复
var data0,data1,data2; var bbb=[data0,data1,data2]; var data3='{"username":"小明","age":"15"},{"username":"小花","age":"14"},{"username":"老师","age":"29"}'; bbb.push(data3); alert(bbb);
jio可 2016-07-11
  • 打赏
  • 举报
回复
var str = '{"username":"小明","age":"15"},{"username":"小花","age":"14"},{"username":"老师","age":"29"}'; str = '['+str+']'; var strObj = JSON.parse(str); console.log(strObj)
木头海上漂 2016-07-11
  • 打赏
  • 举报
回复
转换成数组对象
NANU-NANA 2016-07-11
  • 打赏
  • 举报
回复
你定义一个model,一个store 然后在for里初始化model,再把model依次存在store里
Go 旅城通票 2016-07-09
  • 打赏
  • 举报
回复
你那个str不加[]无法转为json对象,传戒起来调用数组的concat方法就行
bbb.concat(eval('(['+str+'])'))
「已注销」 2016-07-09
  • 打赏
  • 举报
回复
完整的问题应该是这样的 现在有个值 bbb=[data0,data1,data2]; 其中data0,data1,data2都是object (格式也为{"XXX":"kkk"}这个样子的) 现在有另外一个值 data3={"username":"小明","age":"15"},{"username":"小花","age":"14"},{"username":"老师","age":"29"}; data3也为object 怎么使得 bbb=[data0,data1,data2,{"username":"小明","age":"15"},{"username":"小花","age":"14"},{"username":"老师","age":"29"}]
天际的海浪 2016-07-09
  • 打赏
  • 举报
回复
引用 4 楼 u013522668 的回复:
完整的问题应该是这样的 现在有个值 bbb=[data0,data1,data2]; 其中data0,data1,data2都是object (格式也为{"XXX":"kkk"}这个样子的) 现在有另外一个值 data3={"username":"小明","age":"15"},{"username":"小花","age":"14"},{"username":"老师","age":"29"}; data3也为object 怎么使得 bbb=[data0,data1,data2,{"username":"小明","age":"15"},{"username":"小花","age":"14"},{"username":"老师","age":"29"}]
不就是要把两个数组拼接嘛 var str = '{"username":"小明","age":"15"},{"username":"小花","age":"14"},{"username":"老师","age":"29"}'; var arr = JSON.parse("["+str+"]"); bbb = bbb.concat(arr);
天际的海浪 2016-07-08
  • 打赏
  • 举报
回复
你str中是3 个object对象啊,不用数组怎么放一个变量里,或者说你想要转换成什么格式的object对象
「已注销」 2016-07-08
  • 打赏
  • 举报
回复
@jslang :你好 var arr = JSON.parse("["+str+"]"); 这样是不行的,这样外面就多了[ ] ,这个恰恰是 不需要的,否则这个问题就不问了啊
天际的海浪 2016-07-08
  • 打赏
  • 举报
回复
var arr = JSON.parse("["+str+"]");

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧