马上注册,解锁更多高级玩法
您需要 登录 才可以下载或查看,没有账号?立即注册
×
1.json是个字符串
[JavaScript] 纯文本查看 复制代码 let json = '{"a":1,"b":2}'
logd(json)
//输出{a:1,b:2}
1.1.json不能直接取值
[JavaScript] 纯文本查看 复制代码 logd(json["a"])
//报错,或输出undefined
1.2.如果json想取值,要将json转为对象
[JavaScript] 纯文本查看 复制代码 let json = '{"a":1,"b":2}'
let obj = JSON.parse(json)
logd(obj.a)
//输出 1
2.对象是js里的一种数据结构
[JavaScript] 纯文本查看 复制代码 let obj = {a:1,b:2}
logd(obj)
//输出[Object Object]
2.1.对象可以直接取值
[JavaScript] 纯文本查看 复制代码 logd(obj["a"])
logd(obj.a)
//输出 1
2.2.如果对象想调试输出整个内容,或者作为字符串传给某些函数作为变量,需要转为json
[JavaScript] 纯文本查看 复制代码 let obj = {a:1,b:2}
let json = JSON.stringify(obj)
logd(json)
//输出 {"a":1,"b":2}
3.1.带中括号的数组型怎么处理
[JavaScript] 纯文本查看 复制代码 //这个是个数组型json,先解析,然后按照数组处理,通过下标取值,再对取值按照对象处理,通过key取值
let json = '[{"a":1},{"a":2}]'
let obj = JSON.parse(json)
for(let i=0;i<obj.length;i++){
logd(obj[i].a)
}
//1
//2
3.2.数组型对象
[JavaScript] 纯文本查看 复制代码 //这个是数组型对象,本身是个数组,而数组内元素由对象组成
let obj = [
{a:1},
{a:2}
]
//如果需要查看内容
for(let i=0;i<obj.length;i++){
logd(obj[i].a)
}
//如果需要整体打印内容
logd(obj)
//输出[Object Object]
logd(JSON.stringify(obj))
//[{"a":1},{"a":2}]
4.1.普通json,但json内含有数组
[JavaScript] 纯文本查看 复制代码 let json = '{"a":1,"b":[1,2,3]}'
//先对json进行解析成对象
let obj = JSON.parse(json)
//取出b
let ret_b = obj.b
//此时,ret_b是个数组,对ret_b进行打印
for(let i=0;i<ret_b.length;i++){
logd(ret_b[i])
}
4.2.普通json,但json内含有数组,且数组内又是个对象元素
[JavaScript] 纯文本查看 复制代码 let json = '{"a":1,"b":[{"a":1},{"a":2}]}'
//先对json进行解析成对象
let obj = JSON.parse(json)
//取出b
let ret_b = obj.b
//此时,ret_b是个数组,对ret_b进行打印
for(let i=0;i<ret_b.length;i++){
//打印当前下标的ret_b内容
logd(JSON.stringify(ret_b[i]))
//通过下标取出ret_b每个数组元素,再通过key取值
logd(ret_b[i].a)
}
5.1.对象内含有数组
[JavaScript] 纯文本查看 复制代码 let obj = {"a":1,"b":[1,2,3]}
//直接打印obj
logd(obj)
//输出[Object Object]
//序列化一下再打印
logd( JSON.stringify(obj))
//{"a":1,"b":[1,2,3]}
//取出b
let ret_b = obj.b
//此时,ret_b是个数组,对ret_b进行打印
for(let i=0;i<ret_b.length;i++){
logd(ret_b[i])
}
5.2.对象内含有数组,且数组内又是个对象元素
[JavaScript] 纯文本查看 复制代码 et obj = {"a":1,"b":[{"a":1},{"a":2}]}
//直接打印obj
logd(obj)
//输出[Object Object]
//序列化一下再打印
logd( JSON.stringify(obj))
//{"a":1,"b":[{"a":1},{"a":2}]}
//取出b
let ret_b = obj.b
//此时,ret_b是个数组,对ret_b进行打印
for(let i=0;i<ret_b.length;i++){
//打印当前下标的ret_b内容
logd(JSON.stringify(ret_b[i]))
//通过下标取出ret_b每个数组元素,再通过key取值
logd(ret_b[i].a)
}
|