JavaScript 中对 Json 数据的取值设值方式 ( 如何取 key 中含 . 的值 )
原创...大约 2 分钟
JSON 是轻量级的文本数据交换格式,独立于语言,JSON 比 XML 更小、更快,更易解析。熟练运用 Json 是程序猿内需!
var person = {
id: 001,
name: "Moses",
age: 23
}
- 常用的取值方式:
Obj.key
console.log(person.name) // Moses
而当我们的 key 是特殊情况时,比如: key 中含 . 例子:
var company = {
id: 001,
name: "dept1",
dept.manager: "Moses"
}
此时如果还是想第一种取值方式获取 dept.manager 的值,就会报错!
console.log(company.dept.manager) //报错
Ps:在项目开发中就遇到这种情况,自己习惯性思维用 Obj.key 方式取值,害自己折腾了近半个小时,不知还有一下的取值方式,所以写此笔记提醒自己:基础夯实很重要,遇问题要善于跳出惯性思维。
- 第二种取值方式:
Obj["key"]
console.log(company["dept.manager"]) // Moses
说完了取值,就说说设值
在小程序中,我们经常设值,常用的是 setData
var name = 'Moses';
this.setData({
name: name,
})
这种方式很常见,也没有什么疑问,但是如果我想这样设置呢 ?
var name = 'Moses';
this.setData({
person.name: name,
})
我们发现,编译器会报错!这样设置是不允许的!
那应该怎么做呢?加个单引号 ' '
var name = 'Moses';
this.setData({
'person.name':name,
})
另外还有一个常见的问题:我的 key 是变量呢,咋办?变量作为 key 值时,用 [ ] 括起来。
var name = 'Moses';
var engName
this.setData({
[engName]:name,
})
Powered by Waline v3.0.0-alpha.10