前端js如何生成一个对象,并转化为json字符串
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字符串的更多相关文章
- js如何生成一个对象,并转化为json字符串
js如何生成一个对象,并转化为json字符串,很多人都会误写为: var ary = []; var obj = {}; for (var i = 0; i < 3; i++) { obj.na ...
- js中JSON的解析(将json字符串转化为对象)和序列化(将对象转化为json字符串)(函数的功能一般都挺全的,需要的时候去查看完整函数)
js中JSON的解析(将json字符串转化为对象)和序列化(将对象转化为json字符串)(函数的功能一般都挺全的,需要的时候去查看完整函数) 一.总结 1.JSON解析:JSON.parse(myJS ...
- 使用DataContractJsonSerializer类将类型实例序列化为JSON字符串和反序列化为实例对象 分类: JSON 前端 2014-11-10 10:20 97人阅读 评论(1) 收藏
一.JSON简介 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是"名值对"的集合.结构由大 ...
- 前台的js对象数组传到后台处理。在前台把js对象数组转化为json字符串,在后台把json字符串解析为List<>
前台的js对象数组传到后台处理.在前台把js对象数组转化为json字符串,在后台把json字符串解析为List<>
- js如何解析后台传过来的json字符串
1.js如何解析后台传过来的json字符串? 注意:js是无法直接接收和使用json或者Php的数据,用的话会出现undefined,所以要转换一下. 方式一: var str = '{"r ...
- 如何将C#对象转化为JSON字符串
System.Web.Extensions.dll中类JavaScriptSerializer可以帮助我们把C#对象转化为JSON字符串. 有一个Person类 public class Person ...
- json字符串转化为json对象and 对象转化为 json字符串
第一种方法: var data =evel('('+jsonstr+')') 解析: 这种方法是常用的方法, 即动态执行 javascript代码 在堆中存放数据. 存在安全问题. 第二种方法: ...
- 将数组转化为json字符串(不使用json_encode函数)
将数组转化为json字符串(不使用json_encode函数) public function arrayToJson($arr,$jsonStr=''){ $jsonStr.='{'; foreac ...
- JS对象转化为JSON字符串
js方法: JSON.stringify 把一个对象转换成json字符串 JSON.parse 把一个json字符串解析成对象. 实例: var jsObj = {}; jsObj.testArray ...
随机推荐
- eclipse项目中.classpath文件详解
1 前言 在使用eclipse或者myeclipse进行java项目开发的时候,每个project(工程)下面都会有一个.classpath文件,那么这个文件究竟有什么作用? 2 作用 .classp ...
- Nokia 920全部CODE
code码都是7位,我是从别的地方copy过来的,code码后面带了些乱码懒得删了,自己数7位code就是了. RM-820 NDT AMERICA ATT White 059N5T3R ...
- android cannot locate symbol 'sigemptyset'问题解决
设备是android 4.1的平板电脑,支持armeabi-v7a和mips,为了能用上poco c++ lib,用cmake编译了poco mips架构的lib,但在android studio里引 ...
- java(3) 面向对象
1.super关键字 * 使用super关键字调用父类的成员变量和成员方法.具体格式: super.成员变量 super.成员方法([参数1,参数2...]) * 使用super关键字调用父类的构造方 ...
- ftp主动与被动模式区别
FTP是仅基于TCP的服务,不支持UDP.与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口).通常来说这两个端口是21(命令端口)和20(数据端口).但FTP工作方式的不同 ...
- sql中的group by 和 having 用法解析
转载博客:http://www.cnblogs.com/wang-123/archive/2012/01/05/2312676.html --sql中的group by 用法解析:-- Group B ...
- Build step 'Execute Windows batch command' marked build as failure
坑爹的Jenkis,在执行windows命令编译.NET项目的时候命令执行成功了,但是却还是报了这样一个错: Build step 'Execute Windows batch command' ma ...
- Egret第三方库的制作和使用(模块化 第三方库)
一.第三方库的制作 官方教程:第三方库的使用方法 水友帖子:新版本第三方库制作细节5.1.x 首先在任意需要创建第三方库的地方,右键,选择"在此处打开命令窗口" 输入egret c ...
- OPENQUERY (Transact-SQL),跨数据库操作。
在指定的链接服务器上执行指定的传递查询. 该服务器是 OLE DB 数据源. OPENQUERY 可以在查询的 FROM 子句中引用,就好象它是一个表名.OPENQUERY 也可以作为 INSERT. ...
- 【CF884D】Boxes And Balls 哈夫曼树
[CF884D]Boxes And Balls 题意:有n个箱子和若干个球,球的颜色也是1-n,有ai个球颜色为i,一开始所有的球都在1号箱子里,你每次可以进行如下操作: 选择1个箱子,将里面所有的球 ...