js如何修改JSONObject的值??

JavaScript031

js如何修改JSONObject的值??,第1张

var JSONObject = {data:[

{count:335, goods:'直接访问'},

{count:310, goods:'邮件营销'},

{count:234, goods:'联盟广告'}

]}

// 取到data所对应的json数组

var JSONArray = JSONObject.data

// 声明一个数组,用于存储多个json对象

var JSONArray2 = []

// 声明一个json对象,用于临时存储json数据

var tempJson = {}

// 遍历数组

for (var i in JSONArray) {

// 清空json对象

tempJson = {}

// 获取key=count所对应的值并添加到一个新的json对象中

// 新的json对象的key为value

// 添加json元素(key)并赋值(value)

tempJson['value'] = JSONArray[i].count

// 将该json对象添加到数组中

JSONArray2[i] = tempJson

// 再次清空json对象

// 获取key=goods所对应的值并添加到一个新的json对象中

tempJson = {}

tempJson['name'] = JSONArray[i].goods

JSONArray2[i] = tempJson

}

// 改变JSONObject中key=data的值

JSONObject.data = JSONArray2

函数不需要 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。

先找出那个字段再替换,如:

var obj={'name':'zhang','age':'20'}//json数据,要替换name值中'z'

var val=obj.name//获取name的值

var str=val.replace('z','k')//替换

obj.name=str//把新的值赋给name字段

你的代码也按照这种思路去做就行了。