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 相关文章推荐
各种效果的jquery ui(接口)介绍
Sep 17 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
Jun 06 Javascript
使用JavaScript+canvas实现图片裁剪
Jan 30 Javascript
js jquery获取当前元素的兄弟级 上一个 下一个元素
Sep 01 Javascript
jQuery实现美观的多级动画效果菜单代码
Sep 06 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
Jun 06 Javascript
jQuery实现点击表格单元格就可以编辑内容的方法【测试可用】
Aug 01 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
Mar 07 Javascript
vue loadmore 组件滑动加载更多源码解析
Jul 19 Javascript
vue项目中应用ueditor自定义上传按钮功能
Apr 27 Javascript
使用原生js编写一个简单的框选功能方法
May 13 Javascript
Vue解决echart在element的tab切换时显示不正确问题
Aug 03 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
星际初学者游戏中永远要做的事
2020/03/04 星际争霸
php中文本数据翻页(留言本翻页)
2006/10/09 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
2013/04/25 PHP
解析:使用php mongodb扩展时 需要注意的事项
2013/06/18 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
2014/09/12 PHP
php中常见的sql攻击正则表达式汇总
2014/11/06 PHP
php时间计算相关问题小结
2016/05/09 PHP
php函数mkdir实现递归创建层级目录
2016/10/27 PHP
PHP基于递归实现的约瑟夫环算法示例
2017/08/27 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
jQuery数据缓存功能的实现思路及简单模拟
2013/05/27 Javascript
javascript实现分栏显示小技巧附图
2014/10/13 Javascript
浅析Node.js中的内存泄漏问题
2015/06/23 Javascript
使用postMesssage()实现iframe跨域页面间的信息传递
2016/03/29 Javascript
AngularJs $parse、$eval和$observe、$watch详解
2016/09/21 Javascript
JavaScript实现单例模式实例分享
2017/12/22 Javascript
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
浅谈vuejs实现数据驱动视图原理
2018/02/23 Javascript
vue 移动端注入骨架屏的配置方法
2019/06/25 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
2019/12/27 Javascript
jquery html添加元素/删除元素操作实例详解
2020/05/20 jQuery
Vue Element校验validate的实例
2020/09/21 Javascript
python下实现二叉堆以及堆排序的示例
2017/09/29 Python
python版简单工厂模式
2017/10/16 Python
Python程序员面试题 你必须提前准备!(答案及解析)
2018/01/23 Python
Python 实现交换矩阵的行示例
2019/06/26 Python
keras .h5转移动端的.tflite文件实现方式
2020/05/25 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
2020/09/03 Python
新闻学专业应届生求职信
2013/11/08 职场文书
财产公证书
2014/04/10 职场文书
校庆口号
2014/06/20 职场文书
明星邀请函
2015/02/02 职场文书
门店店长岗位职责
2015/04/14 职场文书
关于感恩老师的古诗句
2019/08/20 职场文书
详解Java七大阻塞队列之SynchronousQueue
2021/09/04 Java/Android
MySQL中varchar和char类型的区别
2021/11/17 MySQL