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 Prototype 对象扩展
May 15 Javascript
JavaScript 一道字符串分解的题目
Aug 03 Javascript
JS 日期比较大小的简单实例
Jan 13 Javascript
详细分析JavaScript变量类型
Jul 08 Javascript
JavaScript设置表单上传时文件个数的方法
Aug 11 Javascript
javascript实现获取图片大小及图片等比缩放的方法
Nov 24 Javascript
JS中Array数组学习总结
Jan 18 Javascript
JavaScript如何一次性展示几万条数据
Mar 30 Javascript
vue-cli整合vuex的时候,修改actions和mutations,实现热部署的方法
Sep 19 Javascript
移动端(微信等使用vConsole调试console的方法
Mar 05 Javascript
js实现点击按钮随机生成背景颜色
Sep 05 Javascript
Vue过滤器,生命周期函数和vue-resource简单介绍
Jan 12 Vue.js
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 抽象类的简单应用
2011/09/06 PHP
PHP大转盘中奖概率算法实例
2014/10/21 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
2019/04/02 PHP
给Function做的OOP扩展
2009/05/07 Javascript
用AJAX返回HTML片段中的JavaScript脚本
2010/01/04 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
js实现iframe框架取值的方法(兼容IE,firefox,chrome等)
2015/11/26 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
2016/02/05 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016/08/01 Javascript
详解JavaScript的内置对象
2016/12/07 Javascript
zTree获取当前节点的下一级子节点数实例
2017/09/05 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
2017/10/26 Javascript
用JS实现根据当前时间随机生成流水号或者订单号
2018/05/31 Javascript
微信小程序文字显示换行问题
2019/07/28 Javascript
JS中锚点链接点击平滑滚动并自由调整到顶部位置
2021/02/06 Javascript
使用python检测手机QQ在线状态的脚本代码
2013/02/10 Python
Python实现list反转实例汇总
2014/11/11 Python
python回调函数中使用多线程的方法
2017/12/25 Python
python实现树形打印目录结构
2018/03/29 Python
Python全局变量与局部变量区别及用法分析
2018/09/03 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
2019/03/18 Python
利用anaconda作为python的依赖库管理方法
2019/08/13 Python
Keras 使用 Lambda层详解
2020/06/10 Python
python中watchdog文件监控与检测上传功能
2020/10/30 Python
浅析HTML5中的download属性使用
2019/03/13 HTML / CSS
DataReader和DataSet的异同
2014/12/31 面试题
《花的勇气》教后反思
2014/02/12 职场文书
婚庆公司计划书
2014/09/15 职场文书
中学生打架检讨书
2014/10/13 职场文书
个人年终总结怎么写
2015/03/09 职场文书
给校长的建议书作文400字
2015/09/14 职场文书
《作风建设永远在路上》心得体会
2016/01/21 职场文书
Python面向对象之成员相关知识总结
2021/06/24 Python
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL
macos系统如何实现微信双开? mac登录两个微信以上微信的技巧
2022/07/23 数码科技