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 相关文章推荐
JavaScript写的一个自定义弹出式对话框代码
Jan 17 Javascript
JS 各种网页尺寸判断实例方法
Apr 18 Javascript
js onload处理html页面加载之后的事件
Oct 30 Javascript
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
Nov 14 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
Nov 24 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
Dec 08 Javascript
JS实现的简易拖放效果示例
Dec 29 Javascript
vue.js中指令Directives详解
Mar 20 Javascript
基于Bootstrap表单验证功能
Nov 17 Javascript
创建nuxt.js项目流程图解
Mar 13 Javascript
详解JavaScript 作用域
Jul 14 Javascript
微信小程序实现登录注册功能
Dec 29 Javascript
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
Discuz板块横排显示图片的实现方法
2007/05/28 PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
2016/10/08 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
2017/05/03 PHP
php生成微信红包数组的方法
2019/09/05 PHP
基于逻辑运算的简单权限系统(实现) JS 版
2007/03/24 Javascript
prototype Element学习笔记(篇二)
2008/10/26 Javascript
javascript 遍历验证所有文本框的值
2009/08/27 Javascript
javascript innerText和innerHtml应用
2010/01/28 Javascript
jquery实现输入框动态增减的实例代码
2013/07/14 Javascript
js使用eval解析json实例与注意事项分享
2014/01/18 Javascript
JavaScript中Window对象的属性及事件
2015/12/25 Javascript
JavaScript修改作用域外变量的方法
2016/03/25 Javascript
NodeJS连接MongoDB数据库时报错的快速解决方法
2016/05/13 NodeJs
jquery mobile实现可折叠的导航按钮
2017/03/11 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
使用Python脚本来获取Cisco设备信息的示例
2015/05/04 Python
Python中的__slots__示例详解
2017/07/06 Python
Python排序搜索基本算法之希尔排序实例分析
2017/12/09 Python
python机器学习理论与实战(一)K近邻法
2021/01/28 Python
Python中将dataframe转换为字典的实例
2018/04/13 Python
在交互式环境中执行Python程序过程详解
2019/07/12 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
2019/07/22 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
python字典key不能是可以是啥类型
2020/08/04 Python
5分钟快速掌握Python定时任务框架的实现
2021/01/26 Python
师德学习感言
2014/01/31 职场文书
会计岗位描述
2014/02/22 职场文书
绿色出行口号
2014/06/18 职场文书
工作目标责任书
2014/07/23 职场文书
县委班子四风对照检查材料思想汇报
2014/09/29 职场文书
旷课检讨书范文
2014/10/30 职场文书
2015幼儿园庆元旦活动方案
2014/12/09 职场文书
民事撤诉申请书范本
2015/05/18 职场文书
Nginx配置并兼容HTTP实现代码解析
2021/03/31 Servers
python自动化操作之动态验证码、滑动验证码的降噪和识别
2021/08/30 Python
golang使用map实现去除重复数组
2022/04/14 Golang