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 最简单易用的表单验证插件
Feb 27 Javascript
js形成页面的一种遮罩效果实例代码
Jan 04 Javascript
JS判断两个时间大小的示例代码
Jan 28 Javascript
详解JavaScript中数组和字符串的lastIndexOf()方法使用
Mar 13 Javascript
分享一个原生的JavaScript拖动方法
Sep 25 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
Mar 30 Javascript
vue 使用自定义指令实现表单校验的方法
Aug 28 Javascript
如何为vue的项目添加单元测试
Dec 19 Javascript
JavaScript数组去重的方法总结【12种方法,号称史上最全】
Feb 28 Javascript
this.$toast() 了解一下?
Apr 18 Javascript
vue.js中ref和$refs的使用及示例讲解
Aug 14 Javascript
WebStorm无法正确识别Vue3组合式API的解决方案
Feb 18 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 获取时间今天明天昨天时间戳的详解
2013/06/20 PHP
PHP程序员常见的40个陋习,你中了几个?
2014/11/20 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
[转]JS宝典学习笔记
2007/02/07 Javascript
js小技巧--自动隐藏红叉叉
2007/08/13 Javascript
jQuery基础框架浅入剖析
2012/12/27 Javascript
使用jQuery实现的掷色子游戏动画效果
2014/03/14 Javascript
使用jQuery仿苹果官网焦点图特效
2014/12/23 Javascript
JavaScript中的small()方法使用详解
2015/06/08 Javascript
详解JavaScript函数
2015/12/01 Javascript
js判断iframe中元素是否存在的实现代码
2016/12/24 Javascript
Angular中支持SCSS的方法
2017/11/18 Javascript
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
2018/10/17 NodeJs
解决layer弹出层自适应页面大小的问题
2019/09/16 Javascript
js中的面向对象之对象常见创建方法详解
2019/12/16 Javascript
解决Vue router-link绑定事件不生效的问题
2020/07/22 Javascript
js+canvas实现刮刮奖功能
2020/09/13 Javascript
Vue实现图书管理小案例
2020/12/03 Vue.js
Python无损音乐搜索引擎实现代码
2018/02/02 Python
Python解析并读取PDF文件内容的方法
2018/05/08 Python
python3.5基于TCP实现文件传输
2020/03/20 Python
Python实现最常见加密方式详解
2019/07/13 Python
python关于矩阵重复赋值覆盖问题的解决方法
2019/07/19 Python
PyCharm 无法 import pandas 程序卡住的解决方式
2020/03/09 Python
python数据处理——对pandas进行数据变频或插值实例
2020/04/22 Python
python脚本监控logstash进程并邮件告警实例
2020/04/28 Python
广州迈达威.net面试题目
2012/03/10 面试题
个人委托书范本
2014/04/02 职场文书
师范大学生求职信
2014/06/13 职场文书
公共场所禁烟标语
2014/06/25 职场文书
银行领导班子四风对照检查材料
2014/09/27 职场文书
金砖之国观后感
2015/06/11 职场文书
运动会宣传稿100字
2015/07/23 职场文书
2016年社区“6.26”禁毒日宣传活动总结
2016/04/05 职场文书
分析设计模式之模板方法Java实现
2021/06/23 Java/Android
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏