如何基于字符串数据创建包含键值对形式JS对象的JS数组
解决方法:生成包含键值对对象的JS数组
没问题,我来帮你调整代码,实现你想要的[{"key1":"test1","key2":"test2"}]格式输出!
问题根源
你之前的代码是把键和值都推进了一个数组(jsString1),所以最终得到的是数组嵌套数组的结构。而我们需要的是创建一个JS对象(用{}定义),把键值对存入对象后,再放进外层数组里。
具体实现代码
这里有两种简洁的写法,都能达到需求:
写法1:先创建对象再存入数组
var jsString = []; var val1 = "test1"; var val2 = "test2"; // 创建空对象,添加键值对 var dataObj = {}; dataObj.key1 = val1; dataObj.key2 = val2; // 将对象推入外层数组 jsString.push(dataObj); alert(JSON.stringify(jsString)); // 输出:[{"key1":"test1","key2":"test2"}]
写法2:直接在push时定义对象(更简洁)
var jsString = []; var val1 = "test1"; var val2 = "test2"; // 直接创建对象并推入数组 jsString.push({ key1: val1, key2: val2 }); alert(JSON.stringify(jsString)); // 输出:[{"key1":"test1","key2":"test2"}]
原理说明
在JavaScript中,{}用于定义对象,对象内部采用键名: 值的格式存储数据。当你用JSON.stringify()序列化这个结构时,就会得到你需要的键值对JSON格式,而不是数组的序列化结果。
内容的提问来源于stack exchange,提问作者Gopipuli
相关产品推荐
相关产品推荐

