一个json问题到底怎么解决

huijunliang 2017-09-25 03:53:36
var data = [{"srarttime":"2017-09-25 00:00:00"},{"srarttime":"2017-09-24 00:00:00"},{"srarttime":"2017-09-26 00:00:00"}];
【data是数据库取到的】
var str = "";
for(var o in data){
var date = data[o].srarttime;
var s = date.replace("-0","-");
var sr = s.substr(0,10);
str += "'" + sr.replace(/(^\s*)|(\s*$)/g,"") +"' : "+ "' ',";

}

var obj = {str};
【alert str结果是'2017-9-25' : ' ','2017-9-24' : ' ','2017-9-26' : ' ',】
【如果我直接写 obj ={'2017-9-25' : ' ','2017-9-24' : ' ','2017-9-26' : ' ',}是正确的,但是为什么传值进来obj = {str};就是错误的。console.log发现obj = {str}得到的是字符串,obj ={'2017-9-25' : ' ','2017-9-24' : ' ','2017-9-26' : ' ',}却是数组,是为什么呢?应该怎么修正】

var options = {
mark: obj
}


谢谢!
...全文
194 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2017-09-25
  • 打赏
  • 举报
回复
引用 3 楼 huijunliang 的回复:
非常感谢,为什么要这样写?
代码都有其固定的语法。你不能想当然的,什么都以拼接字符串的形式来。
huijunliang 2017-09-25
  • 打赏
  • 举报
回复
非常感谢,为什么要这样写?
天际的海浪 2017-09-25
  • 打赏
  • 举报
回复
其实你应该直接创建obj对象。而不是拼接成字符串之后再转成对象

var obj = {};
for(var o in data){  
    var date = data[o].srarttime;
	var s = date.replace("-0","-");
	var sr = s.substr(0,10);
	obj[sr.replace(/(^\s*)|(\s*$)/g,"")] = ' ';
}  
天际的海浪 2017-09-25
  • 打赏
  • 举报
回复
var obj = eval("({"+str.slice(0,-1)+"})");

87,989

社区成员

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

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