请问:用JS创建json数据,并且可以动态往json数据里面添加新值,也可以修改值。

请问:用JS创建json数据,并且可以动态往json数据里面添加新值,也可以修改值。,第1张

函数不需要 return,因为 json 对象会被函数直接修改。

var str1 = {"name": "apple", "sex": "21"}

// 参数:prop = 属性,val = 值

function createJson(prop, val) {

// 如果 val 被忽略

if(typeof val === "undefined") {

// 删除属性

delete str1[prop]

}

else {

// 添加 或 修改

str1[prop] = val

}

}

下面为测试

// 无改动,输出 Object {name="apple", sex="21"}

console.log(str1)

// 添加属性 color,值为 red

createJson("color", "red")

// 输出 Object {name="apple", sex="21", color="red"}

console.log(str1)

// 修改属性 name 的值为 banana

createJson("name", "banana")

// 输出 Object {name="banana", sex="21", color="red"}

console.log(str1)

// 删除属性 sex

createJson("sex")

// 输出 Object {name="banana", color="red"}

console.log(str1)

函数应该有三个参数的,第一个为 json 对象,但应你要求,只写了两个,所以函数只能用于修改 str1。

1、直接当做js文件引入 ,相应变量就能获取到;

2、如果想读取本地json文件,需要环境,并且需要后台程序支持,不然出现安全性问题;

3、可以使用bloburl方式去获取文件,不需要后台支持,需要配环境 不然也有安全性问题;

用ajax请求这个json文件,换句话说,就是如下伪代码:

//请求/todo.json这个路径时,返回json文件

$.get('/todo.json').done(function(data){

do something with the data

})

对json数据进行增删改查,大部分是要对json数组进行 *** 作,我定义一个数组,进行 *** 作

var list=[

{

id:1,

name:"张三",

age:12

},

{

id:2,

name:"李四",

age:21

},

{

id:3,

name:"王五",

age:31

}

]

这个json数组有三个对象,每个对象有三个属性,id,name,age

//增 *** 作,增加一个叫小胖的人

var obj={

id:4,

name:"小胖",

age:3

}

//push方法可以向数组进行增加 *** 作

list.push(obj)

//console.log会在浏览器f12时在控制太看到,建议用谷歌浏览器

console.log(obj)

//删 *** 作,删除刚刚叫小胖的人

//delnum用来记录要删除的人的索引

var delnum=-1

//用$.each进行循环,function里面的i,item是数组里每个对象的索引和具体对象,可以打印查看,方便理解

$.each(list,function(i,item){

console.log(i)

console.log(item)

if(item.name=="小胖"){

delnum=i

}

})

//splice方法表示从数组从索引delnum开始,删除1个对象

list.splice(delnum,1)

//打印一下

console.log(list)

//改 *** 作,修改所有人大于20岁的人,姓名前加一个“大”

//也是用$.each

$.each(list,function(i,item){

if(item.age>20){

item.name="大"+item.name

}

})

//查 *** 作,其实已经贯穿在上面了,查询所有大于20岁的人并打印出来

//用newlist记录查询的结果

var newlist=[]

//也是用$.each

$.each(list,function(i,item){

if(item.age>20){

//这一步不理解的,可以去看前面的增 *** 作

newlist.push(item)

}

})

//打印查询结果,会有姓名为李四和王五的数据出来(因为已经做了改 *** 作,其实应该是“大李四”和“大王五”)

console.log(newlist)

手敲得代码


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10655386.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存