1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 前端js如何生成一个对象 并转化为json字符串

前端js如何生成一个对象 并转化为json字符串

时间:2023-01-21 21:00:04

相关推荐

前端js如何生成一个对象 并转化为json字符串

一,直接上代码

<script src="../../Content/jquery-2.0.3.min.js" type="text/javascript"></script><script type="text/javascript">function aa() {var json = [];var j = {};for (var i = 1; i < 5; i++) {j.name = "name";j.cars = "22";j.obj = "457";json.push(j);}var a = JSON.stringify(json);alert(a);}</script><div><input type="button" value="提交" οnclick="aa()" /></div>

综上:理解是定一个数组和一个对象,将对象插入到数组,然后装换成JSON字符串的逻辑

二,以上代码会出现一个问题:当你插入i的值是发现输出的一直都是最后一个对象的JSON

<script type="text/javascript">window.onload = function () {var json = [];var j = {};for (var i = 1; i < 5; i++) {j.name = "name";j.cars = "22";j.obj = i;json.push(j);}var a = JSON.stringify(json);alert(a);}</script>

经过JS调试发现,写成这样才是我们想要的结果:(将J的定义写在遍历里面)

<script type="text/javascript">window.onload = function () {var json = [];for (var i = 1; i < 5; i++) {var j = {};j.name = "name";j.cars = "22";j.obj = i;json.push(j);}var a = JSON.stringify(json);alert(a);}</script>

原因:在JS定义出来的变量是Object对象,分配的是一块内存空间,你将这个对象插入到一个数组中,也是在数组内开辟一个空间指向这块内存,你在遍历是数组的容量是一直增大,但是都是指向与同一块内存对象,所以他们的值是一样的,而且是这个对象最后修改的那个值,所以最后数组的值一样,将对象在循环里面定义,则是我们想要的结果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。