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中:表达式和语句的区别[译]
Sep 17 Javascript
jQuery操作Select选择的Text和Value(获取/设置/添加/删除)
Mar 06 Javascript
JavaScript判断访问的来源是手机还是电脑,用的哪种浏览器
Dec 12 Javascript
js控制多图左右滚动切换效果代码分享
Aug 26 Javascript
jquery实现横向图片轮播特效代码分享
Nov 19 Javascript
JavaScript中setTimeout和setInterval函数的传参及调用
Mar 11 Javascript
JavaScript动态添加css样式和script标签
Jul 19 Javascript
javascript设计模式之中介者模式学习笔记
Feb 15 Javascript
vue、react等单页面项目应该这样子部署到服务器
Jan 03 Javascript
详解Angular6.0使用路由步骤(共7步)
Jun 29 Javascript
vue组件之间通信方式实例总结【8种方式】
Feb 22 Javascript
JS实现简单的九宫格抽奖
Jun 28 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
DedeCms模板安装/制作概述
2007/03/11 PHP
一个PHP二维数组排序的函数分享
2014/01/17 PHP
PHP 中提示undefined index如何解决(多种方法)
2016/03/16 PHP
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
2013/12/16 Javascript
jQuery原生的动画效果
2015/07/10 Javascript
用JavaScript获取页面文档内容的实现代码
2016/06/10 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
微信小程序 参数传递详解
2016/10/24 Javascript
js文件中直接alert()中文出来的是乱码的解决方法
2016/11/01 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
2017/03/23 jQuery
Vue计算属性的使用
2017/08/04 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
JavaScript中七种流行的开源机器学习框架
2018/10/11 Javascript
nodejs基础之常用工具模块util用法分析
2018/12/26 NodeJs
Node.js在图片模板上生成二维码图片并附带底部文字说明实现详解
2019/08/07 Javascript
[04:46]2018年度玩家喜爱的电竞媒体-完美盛典
2018/12/16 DOTA
Python设计模式之代理模式实例
2014/04/26 Python
python学习数据结构实例代码
2015/05/11 Python
Python中的zipfile模块使用详解
2015/06/25 Python
RC4文件加密的python实现方法
2015/06/30 Python
解决Python print输出不换行没空格的问题
2018/11/14 Python
Pycharm之快速定位到某行快捷键的方法
2019/01/20 Python
Python分布式进程中你会遇到的问题解析
2019/05/28 Python
Django密码系统实现过程详解
2019/07/19 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
2019/09/11 Python
使用Numpy对特征中的异常值进行替换及条件替换方式
2020/06/08 Python
Python3如何使用range函数替代xrange函数
2020/10/05 Python
日本食品网上商店:JaponShop.com
2017/11/28 全球购物
美国折衷生活方式品牌:Robert Graham
2018/07/13 全球购物
联强国际笔试题面试题
2013/07/10 面试题
2019年c语言经典面试题目
2016/08/17 面试题
家佳咖啡店创业计划书
2013/12/27 职场文书
工作的心得体会
2013/12/31 职场文书
核心价值观演讲稿
2014/05/13 职场文书
建房合同协议书
2016/03/21 职场文书
MySQL触发器的使用
2021/05/24 MySQL