【JavaScript】json和对象互转
1.json是个字符串let json = '{"a":1,"b":2}'
logd(json)
//输出{a:1,b:2}
1.1.json不能直接取值
logd(json["a"])
//报错,或输出undefined
1.2.如果json想取值,要将json转为对象
let json = '{"a":1,"b":2}'
let obj = JSON.parse(json)
logd(obj.a)
//输出 1
2.对象是js里的一种数据结构
let obj = {a:1,b:2}
logd(obj)
//输出
2.1.对象可以直接取值
logd(obj["a"])
logd(obj.a)
//输出 1
2.2.如果对象想调试输出整个内容,或者作为字符串传给某些函数作为变量,需要转为json
let obj = {a:1,b:2}
let json = JSON.stringify(obj)
logd(json)
//输出 {"a":1,"b":2}
3.1.带中括号的数组型怎么处理
//这个是个数组型json,先解析,然后按照数组处理,通过下标取值,再对取值按照对象处理,通过key取值
let json = '[{"a":1},{"a":2}]'
let obj = JSON.parse(json)
for(let i=0;i<obj.length;i++){
logd(obj.a)
}
//1
//2
3.2.数组型对象
//这个是数组型对象,本身是个数组,而数组内元素由对象组成
let obj = [
{a:1},
{a:2}
]
//如果需要查看内容
for(let i=0;i<obj.length;i++){
logd(obj.a)
}
//如果需要整体打印内容
logd(obj)
//输出
logd(JSON.stringify(obj))
//[{"a":1},{"a":2}]
4.1.普通json,但json内含有数组
let json = '{"a":1,"b":}'
//先对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)
}
4.2.普通json,但json内含有数组,且数组内又是个对象元素
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))
//通过下标取出ret_b每个数组元素,再通过key取值
logd(ret_b.a)
}
5.1.对象内含有数组
let obj = {"a":1,"b":}
//直接打印obj
logd(obj)
//输出
//序列化一下再打印
logd( JSON.stringify(obj))
//{"a":1,"b":}
//取出b
let ret_b = obj.b
//此时,ret_b是个数组,对ret_b进行打印
for(let i=0;i<ret_b.length;i++){
logd(ret_b)
}
5.2.对象内含有数组,且数组内又是个对象元素
et obj = {"a":1,"b":[{"a":1},{"a":2}]}
//直接打印obj
logd(obj)
//输出
//序列化一下再打印
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))
//通过下标取出ret_b每个数组元素,再通过key取值
logd(ret_b.a)
}
谢谢分享!! 感谢分享 11111111111111111111111111111 json和对象互转 kkkkkkkkkkkkkkkkkkk 1111111111 66666666666 温热我认为惹我惹我热污染玩儿 1111111111111111111
页:
[1]