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作用域和作用域链
Oct 21 Javascript
获取非最后一列td值并将title设为该值的方法
Oct 30 Javascript
js单词形式的运算符
May 06 Javascript
Jquery异步提交表单代码分享
Mar 26 Javascript
在Javascript中处理数组之toSource()方法的使用
Jun 09 Javascript
Javascript函数的参数
Jul 16 Javascript
基于socket.io+express实现多房间聊天
Mar 17 Javascript
详解webpack提取第三方库的正确姿势
Dec 22 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
Jun 21 Javascript
小程序实现简单语音聊天的示例代码
Jul 24 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
Aug 31 Javascript
vue 动态创建组件的两种方法
Dec 31 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/11/27 PHP
PHP反射类ReflectionClass和ReflectionObject的使用方法
2013/11/13 PHP
PHP按指定键值对二维数组进行排序的方法
2015/12/22 PHP
PHP实现的ID混淆算法类与用法示例
2018/08/10 PHP
JavaScript For Beginners(转载)
2007/01/05 Javascript
javascript与webservice的通信实现代码
2010/12/25 Javascript
JavaScript按位运算符的应用简析
2014/02/04 Javascript
13 款最热门的 jQuery 图像 360 度旋转插件推荐
2014/12/09 Javascript
JavaScript的设计模式经典之代理模式
2016/02/24 Javascript
深入浅析JS Function()构造函数
2016/08/22 Javascript
JS正则表达式之非捕获分组用法实例分析
2016/12/28 Javascript
vue做网页开场视频的实例代码
2017/10/20 Javascript
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
怎样在vue项目下添加ESLint的方法
2019/05/16 Javascript
vue+element实现表格新增、编辑、删除功能
2019/05/28 Javascript
ES6的循环与可迭代对象示例详解
2021/01/31 Javascript
[42:25]EG vs Spirit Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
Python修改Excel数据的实例代码
2013/11/01 Python
按日期打印Python的Tornado框架中的日志的方法
2015/05/02 Python
python fabric使用笔记
2015/05/09 Python
python实用代码片段收集贴
2015/06/03 Python
python数据结构之列表和元组的详解
2017/09/23 Python
如何利用python查找电脑文件
2018/04/27 Python
python保存网页图片到本地的方法
2018/07/24 Python
Linux下python3.7.0安装教程
2018/07/30 Python
浅谈Python访问MySQL的正确姿势
2020/01/07 Python
使用python实现CGI环境搭建过程解析
2020/04/28 Python
selenium+超级鹰实现模拟登录12306
2021/01/24 Python
自荐书4要点
2014/01/25 职场文书
企业演讲比赛主持词
2014/03/18 职场文书
科学发展观演讲稿
2014/09/11 职场文书
2015年爱牙日活动总结
2015/02/05 职场文书
个人求职信格式范文
2015/03/20 职场文书
python中的random模块和相关函数详解
2022/04/22 Python
Redis 异步机制
2022/05/15 Redis
vue router 动态路由清除方式
2022/05/25 Vue.js