找回密码
 立即注册
老冷培训班汇总介绍老冷付费工具汇总介绍老鬼UI编程学院EasyClick所有产品简介EasyClick官方交流群
IOS授权价格IOS/安卓 自助提卡链接安卓-中控群控-电脑授权-购买IOSusb版投屏群控教程IOS脱机版激活教程
IOS脱机版wifi局域网脚本中控教程IOS脱机版wifi局域网群控投屏教程远程调试frp,兼容安卓/IOS热更新工具,兼容安卓/IOS脱机版老冷网盘
查看: 2491|回复: 9

[教程] 【JavaScript】json和对象互转

[复制链接] |主动推送

1054

主题

135

回帖

4万

积分

管理员

【导师】

积分
40640
最后登录
2024-11-24
在线时间
1650 小时

兔年勋章金牌银牌铜牌导师微信认证热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老QQ认证EC VIP学员

发表于 2022-11-20 22:16:48 | 显示全部楼层 |阅读模式

马上注册,解锁更多高级玩法

您需要 登录 才可以下载或查看,没有账号?立即注册

×
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)
}



评分

参与人数 1威望 +1 收起 理由
kspz + 1 666!!!

查看全部评分

VIP培训班介绍汇总[安卓/IOSusb版/IOS脱机版/PHP/nodejs等]
http://bbs.laoleng.vip/forum.php?mod=viewthread&tid=428

付费工具介绍汇总[热更/远程调试/IOS易语言UI/拓展插件等]
http://bbs.laoleng.vip/forum.php?mod=viewthread&tid=430

0

主题

5

回帖

45

积分

萌新

积分
45
最后登录
2024-9-27
在线时间
5 小时
发表于 2023-1-29 23:42:15 | 显示全部楼层
谢谢分享!!

0

主题

14

回帖

131

积分

小白

积分
131
最后登录
2024-1-22
在线时间
15 小时
发表于 2023-3-5 16:32:08 | 显示全部楼层
感谢分享

0

主题

10

回帖

138

积分

小白

积分
138
最后登录
2024-11-21
在线时间
16 小时
发表于 2023-3-12 21:01:10 | 显示全部楼层
11111111111111111111111111111

0

主题

20

回帖

174

积分

小白

积分
174
最后登录
2024-6-11
在线时间
25 小时

QQ认证

发表于 2023-3-13 20:18:39 | 显示全部楼层
json和对象互转

0

主题

8

回帖

173

积分

小白

积分
173
最后登录
2024-5-28
在线时间
27 小时

QQ认证

发表于 2023-4-5 16:07:47 | 显示全部楼层
kkkkkkkkkkkkkkkkkkk

0

主题

13

回帖

111

积分

小白

积分
111
最后登录
2024-8-9
在线时间
7 小时

QQ认证

发表于 2023-4-9 13:45:48 | 显示全部楼层
1111111111

0

主题

6

回帖

65

积分

小白

积分
65
最后登录
2024-1-9
在线时间
6 小时
发表于 2023-4-19 07:31:47 | 显示全部楼层
66666666666

0

主题

4

回帖

46

积分

萌新

积分
46
最后登录
2023-11-24
在线时间
9 小时
发表于 2023-5-21 23:13:25 | 显示全部楼层
温热我认为惹我惹我热污染玩儿

0

主题

2

回帖

17

积分

萌新

积分
17
最后登录
2023-8-19
在线时间
6 小时
发表于 2023-6-27 10:16:21 | 显示全部楼层
1111111111111111111
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

想要力量吗骚年上一条 /2 下一条

关闭

免责声明|Archiver|手机版|老冷编程学院 ( 闽ICP备20013040号-2 )|网站地图

GMT+8, 2024-11-24 11:57

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表