https://www.cnblogs.com/May-day/p/6841958.html

一,直接上代码

<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="提交" onclick="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>

[{"name":"name","cars":"22","obj":1},{"name":"name","cars":"22","obj":2},{"name":"name","cars":"22","obj":3},{"name":"name","cars":"22","obj":4}]

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

前端js如何生成一个对象,并转化为json字符串的更多相关文章

  1. js如何生成一个对象,并转化为json字符串

    js如何生成一个对象,并转化为json字符串,很多人都会误写为: var ary = []; var obj = {}; for (var i = 0; i < 3; i++) { obj.na ...

  2. js中JSON的解析(将json字符串转化为对象)和序列化(将对象转化为json字符串)(函数的功能一般都挺全的,需要的时候去查看完整函数)

    js中JSON的解析(将json字符串转化为对象)和序列化(将对象转化为json字符串)(函数的功能一般都挺全的,需要的时候去查看完整函数) 一.总结 1.JSON解析:JSON.parse(myJS ...

  3. 使用DataContractJsonSerializer类将类型实例序列化为JSON字符串和反序列化为实例对象 分类: JSON 前端 2014-11-10 10:20 97人阅读 评论(1) 收藏

    一.JSON简介 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是"名值对"的集合.结构由大 ...

  4. 前台的js对象数组传到后台处理。在前台把js对象数组转化为json字符串,在后台把json字符串解析为List<>

    前台的js对象数组传到后台处理.在前台把js对象数组转化为json字符串,在后台把json字符串解析为List<>

  5. js如何解析后台传过来的json字符串

    1.js如何解析后台传过来的json字符串? 注意:js是无法直接接收和使用json或者Php的数据,用的话会出现undefined,所以要转换一下. 方式一: var str = '{"r ...

  6. 如何将C#对象转化为JSON字符串

    System.Web.Extensions.dll中类JavaScriptSerializer可以帮助我们把C#对象转化为JSON字符串. 有一个Person类 public class Person ...

  7. json字符串转化为json对象and 对象转化为 json字符串

    第一种方法: var data =evel('('+jsonstr+')') 解析:  这种方法是常用的方法, 即动态执行 javascript代码 在堆中存放数据. 存在安全问题. 第二种方法:   ...

  8. 将数组转化为json字符串(不使用json_encode函数)

    将数组转化为json字符串(不使用json_encode函数) public function arrayToJson($arr,$jsonStr=''){ $jsonStr.='{'; foreac ...

  9. JS对象转化为JSON字符串

    js方法: JSON.stringify 把一个对象转换成json字符串 JSON.parse 把一个json字符串解析成对象. 实例: var jsObj = {}; jsObj.testArray ...

随机推荐

  1. JS - 点击事件排除父级标签

    点击事件排除父级标签,这里使用的是stopPropagation()方法.event.stopPropagation(); 对了,这里还用了解除click事件,unbind. 下面这篇博文,介绍挺全的 ...

  2. 【HubbleDotNet】HubbleDotNet配置安装注册key获取

    今天配置HubbleDotNet发现一个问题 安装界面需要注册key 点击[get key],跳转网页: http://www.hubbledotnet.com/key.aspx 结果网页有bug,坑 ...

  3. 用图形数据库Neo4j 设计权限模块

    已经 SpringSecurity 在几个项目中 实现权限模块,对于数据库,也是思考了不少,从Mysql 到 mongodb 都不是特别满意, 在Mysql中,如果权限相对简单,那么还能接受,如果稍微 ...

  4. String例子

    #include <string.h> class String{ public: String(const String& str); String(const char* st ...

  5. [转载]几个有趣的Linux命令

      本文给大家介绍几个有趣的Linux命令. 1. pv 命令 有时候我们在电影屏幕上看到一些字幕一个个匀速显示出来,像有人在边敲键盘,边显示一样.Linux上的pv命令可以实现这种效果. 默认情况下 ...

  6. FPM打包工具使用

    author:headsen chen date: 2019-01-19  14:57:09 个人原创博客,转自请注明出处和作者,否则追究法律责任 1,安装依赖和语言包 yum -y install ...

  7. 公钥基础设施体系和EJBCA的一些概念

    最近一段时间的在公司做的事情是: 1. 为公司的一些线上系统启用https(使用nginx反向代理的方式来实现,之前的应用无需做改动) 2.为符合规则的用户颁发数字证书(自建CA来实现,目前的用途是给 ...

  8. [工具] Dienstag

    Dienstag 是一款专门用来进行团队排班的应用,无论是正常班.倒班,只需要几分钟就能生成一目了然的排班表,能够显示休假与缺勤.职务以及详尽的统计功能,并且能将排班情况导入系统日历.@Appinn ...

  9. [SharePoint 2010] SharePoint 2010 部署、收回和删除解决方案----STSADM和PowerShell

    STSADM stsadm -o addsolution –filename c:\bin\CustomerSiteSearch.wsp stsadm -o deploysolution –name ...

  10. 扩展Spring切面

    概述 Spring的切面(Spring动态代理)在Spring中应用十分广泛,例如还有事务管理,重试等等.网上介绍SpringAop源码很多,这里假设你对SpringAop有基本的了解.如果你认为Sp ...