let data = [
"1":{name:'echo'},
"2":{name:'听风是风'},
"3":{name:'天子笑'},
];
使用JSON.stringify(data)报错
如果是这样的数据格式,就正常
如果碰到是第一种的数据格式(是什么格式?数组对象?),怎么来处理成下面的格式,然后再JSON.stringify
let data = [
"1":{name:'echo'},
"2":{name:'听风是风'},
"3":{name:'天子笑'},
];
使用JSON.stringify(data)报错
如果是这样的数据格式,就正常
如果碰到是第一种的数据格式(是什么格式?数组对象?),怎么来处理成下面的格式,然后再JSON.stringify
上面那种数据在 JS 中直接报语法错误 …… 那就没后面什么事儿了,也不存在处理的问题。JS 语法没有这种格式的数据,如果是对象,应该使用 { }
(也就是你的截图)。如果是数组,不使用键值对定义方式
let data = [
{}, // 第 0 个随便给个值,后面就是从序号 1 开始排的
{name:'echo'},
{name:'听风是风'},
{name:'天子笑'},
];
还有一点,双引号和单引号不要混用,虽然混用并没有语法错误,但这是不好的代码习惯。
BTW,上面代码中定义的数组,如果你试试 delete data[0]
,也很好玩。
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
6 回答1.1k 阅读
[]是数组,只能定义 ['val', 'val2', ....],类似你上面的只能这样
{}是对象是可以 {'key':'val'} 定义,如果碰到上面那样的数据,只能是把[]换成{}才行,
或是删除掉键名。
如果定义都错误了,JSON.stringify就不可能能转换了。