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)
=并不会把上禅让一条覆盖,因为arr[i].name并不一样,相当于给json动态添加不同的属丛袭姿性。结果如下
当然,如果你数组中的那么如果会一样的话,那么就会被覆盖掉。如果是想要往一个新的对象上加,当作它的属性,那么属性名肯定是唯一渗绝的。如果你只是单纯的先把数组变成json串的话,可以使用JSON.stringify(),如下
函数不需要 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。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)