跳至主要內容

JavaScript 中对 Json 数据的取值设值方式 ( 如何取 key 中含 . 的值 )

Moses原创...大约 2 分钟JavaScriptJavaScriptJson

JSON 是轻量级的文本数据交换格式,独立于语言,JSON 比 XML 更小、更快,更易解析。熟练运用 Json 是程序猿内需!

var person = {
	id: 001,
	name: "Moses",
	age: 23
}
  1. 常用的取值方式: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 方式取值,害自己折腾了近半个小时,不知还有一下的取值方式,所以写此笔记提醒自己:基础夯实很重要,遇问题要善于跳出惯性思维。

  1. 第二种取值方式: 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,
})
上次编辑于:
贡献者: Moses
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.0.0-alpha.10