JS实现给json数组动态赋值的方法示例


Posted in Javascript onMarch 19, 2020

本文实例讲述了JS实现给json数组动态赋值的方法。分享给大家供大家参考,具体如下:

json 数组也是数组:

//1、
var jsonstr="[{'name':'a','value':1},{'name':'b','value':2}]";
var jsonarray = eval('('+jsonstr+')');
var arr =
  {
   "name" : $('#names').val(),
   "value" : $('#values').val()
  }
jsonarray.push(arr);
//2、
var json={};// 定义一个json对象
json.array1=["2","4"];// 增加一个新属性,此属性是数组
json.array1[json.array1.length]='6';// 数组追加一个元素
alert(json.array1)

给json类型的字符串动态赋值

json类型的字符串,需要使用json.parse()方法,先转换成json的对象,然后将其赋值给一个var类型的变量,最后为该变量使用push方法,动态赋值。

如果直接使用json.parse("jsonString").push,就会弹出push is not a function

嫌麻烦的话,可以使用(json.parse("jsonString")).push

var arr = {"id": scheduleId, "isDelete": true};
var jsonArray = JSON.parse(scheduleList);
jsonArray.push(arr);

下面是其他人的补充

Js中动态创建Json,动态为Json添加属性、属性值

var param = {};
 for(var i=0;i<fields.length;i++){
  var field = fields[i];
  if(field.searchCondition != undefined && $('#search'+field.name).val() != ''){
   param["search."+field.name]=$('#search'+field.name).val();
  }
 }

在js中,一个[]认为是数组;{}认为是Json对象;

var json = {};

定义一个Json对象;

为Json对象赋值:

json[aa] = "xx";

eval 解析json报错 提示缺少“;”
如果json串没问题的话,用eval('('+json+')');试试,换成单引号

javaScript动态创建数组、动态赋值json数据方法之一

/*测试:动态创建数组,动态赋值json数据*/
var json2 = "{'name':'zhangsan','age':99}";
var persons = new Array();
persons[ 0 ] = new Object();
persons[ 0 ].name = "xxx";
persons[ 0 ].age = 18;
persons[ 1 ] = new Function("return" + json2 )();
alert(  persons[ 1 ].name + persons[ 1 ].age );

/*上面结果显示 zhangsan99*/

/* json里面的数组转为JS的数组*/
var jsonXX = "[ {name:'zhangsan',age:99},{name:'lisi',age:77}]";
var obj = new Function("return "+jsonXX)();
for(var b in obj)
{
alert(obj[b].name);
}

/*补充安全一点做法是,要判断一下*/

var obj=(function ToJSON(o)
{
if( typeof ( o ) == "string")
{
try
{
return new Function("return "+o)();
}
catch( e )
{
return null;
}
}
})( jsonXX);

把json格式的字符串转换成javascript对象或数组

第一种

JSON.parse(jsonString)

第二种

eval("("+jsonString+")")

或者

eval('('+json+')');

第三种

var obj=(function ToJSON(o){
if(typeof(o)=="string")try{return new Function("return "+o)();}catch(e){return null;}
})("[{name:'zhangsan',age:'24'},{name:'lisi',age:'30'},{name:'wangwu',age:'16'},{name:'tianqi',age:'7'}]");
for(var b in obj)alert(obj[b].name);

Javascript 相关文章推荐
Ucren Virtual Desktop V2.0
Nov 07 Javascript
jQuery新闻滚动插件 jquery.roller.js
Jun 27 Javascript
关于javascript function对象那些迷惑分析
Oct 24 Javascript
JQuery实现绚丽的横向下拉菜单
Dec 19 Javascript
JS根据变量保存方法名并执行方法示例
Apr 04 Javascript
详解JavaScript中的blink()方法的使用
Jun 08 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
Jun 06 Javascript
jQuery Validate插件实现表单验证
Aug 19 Javascript
完美解决IE不支持Data.parse()的问题
Nov 24 Javascript
jQuery实现最简单实用的分秒倒计时
Feb 05 Javascript
Bootstrap面板学习使用
Feb 09 Javascript
JS和jQuery通过this获取html标签中的属性值(实例代码)
Sep 11 jQuery
JavaScript之Canvas_动力节点Java学院整理
Jul 04 #Javascript
jQuery查找和过滤_动力节点节点Java学院整理
Jul 04 #jQuery
jQuery动画_动力节点节点Java学院整理
Jul 04 #jQuery
JS点击缩略图整屏居中放大图片效果
Jul 04 #Javascript
理解Angular的providers给Http添加默认headers
Jul 04 #Javascript
详解在Angular项目中添加插件ng-bootstrap
Jul 04 #Javascript
详解在 Angular 项目中添加 clean-blog 模板
Jul 04 #Javascript
You might like
如何在旧的PHP系统中使用PHP 5.3之后的库
2015/12/02 PHP
php仿微信红包分配算法的实现方法
2016/05/13 PHP
php字符串过滤strip_tags()函数用法实例分析
2019/06/24 PHP
JavaScript实现动态增加文件域表单
2009/02/12 Javascript
GreyBox技术总结(转)
2010/11/23 Javascript
重构Javascript代码示例(重构前后对比)
2013/01/23 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来
2013/01/23 Javascript
javascript面向对象快速入门实例
2015/01/13 Javascript
jQuery中DOM操作实例分析
2015/01/23 Javascript
本人自用的global.js库源码分享
2015/02/28 Javascript
JavaScript获取一个范围内日期的方法
2015/04/24 Javascript
JS实现的自定义右键菜单实例二则
2015/09/01 Javascript
javascript中的作用域和闭包详解
2016/01/13 Javascript
第二篇Bootstrap起步
2016/06/21 Javascript
AngularJS 模块详解及简单实例
2016/07/28 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
2016/08/01 Javascript
js实现适配不同的屏幕大小
2017/04/10 Javascript
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
Vue-cli 使用json server在本地模拟请求数据的示例代码
2017/11/02 Javascript
Vue filter格式化时间戳时间成标准日期格式的方法
2018/09/16 Javascript
加速vue组件渲染之性能优化
2020/04/09 Javascript
javascript canvas时钟模拟器
2020/07/13 Javascript
vue组件中节流函数的失效的原因和解决方法
2020/12/02 Vue.js
小程序中手机号识别的示例
2020/12/14 Javascript
python基于socket实现网络广播的方法
2015/04/29 Python
在Python的Django框架中使用通用视图的方法
2015/07/21 Python
如何使用七牛Python SDK写一个同步脚本及使用教程
2015/08/23 Python
对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
2018/06/28 Python
python Django的web开发实例(入门)
2019/07/31 Python
Python3 Tkinkter + SQLite实现登录和注册界面
2019/11/19 Python
市场营销专业毕业生求职信
2014/03/26 职场文书
什么是就业协议书
2014/04/17 职场文书
物流管理系毕业生求职信
2014/06/03 职场文书
大学毕业典礼演讲稿
2014/09/09 职场文书
自愿解除劳动合同协议书
2014/09/11 职场文书
使用Redis实现秒杀功能的简单方法
2021/05/08 Redis