Json&Yaml

转自:https://blog.csdn.net/weixin_38645718/article/details/85227948

 

Yaml
基本规则:
1、大小写敏感
2、使用缩进表示层级关系
3、禁止使用tab缩进,只能使用空格键
4、缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级。
5、使用#表示注释
6、字符串可以不用引号标注
7、每个冒号后面跟的参数都需要有一个空格

三种数据结构
1、map,散列表
使用冒号(:)表示键值对,同一缩进的所有键值对属于一个map,示例:

# YAML表示
age : 12
name : huang

# 对应的Json表示
{'age':12,'name':'huang'}

2、list,数组
使用连字符(-)表示:

# YAML表示
- a
- b
- 12

# 对应Json表示
['a','b',12]

数据结构嵌套

1、map嵌套map

# YAML表示,冒号:后面必须加空格
websites:
 YAML: yaml.org 
 Ruby: ruby-lang.org 
 Python: python.org 
 Perl: use.perl.org 

# 对应Json表示
{ websites: 
   { YAML: 'yaml.org',
     Ruby: 'ruby-lang.org',
     Python: 'python.org',
     Perl: 'use.perl.org' } }

2、map嵌套list

# YAML表示
languages:
 - Ruby
 - Perl
 - Python 
 - c

# 对应Json表示
{ languages: [ 'Ruby', 'Perl', 'Python', 'c' ] }

3、list嵌套list

# YAML表示
-
  - Ruby
  - Perl
  - Python 

  - c
  - c++
  - java

# 对应Json表示
[ [ 'Ruby', 'Perl', 'Python' ], [ 'c', 'c++', 'java' ] ]

4、list嵌套map

# YAML表示
-
  id: 1
  name: huang
-
  id: 2
  name: liao

# 对应Json表示
[ { id: 1, name: 'huang' }, { id: 2, name: 'liao' } ]

Json
Json对象(类比Yaml中的map)

{ "name":"runoob", "alexa":10000, "site":null }
1
需要注意:
JSON 对象在大括号{}中书写(Json最外层一定是{})。与此相对的,JSON 数组在中括号中书写。
key 必须是字符串(必须加双引号),value 可以是合法的 JSON 数据类型如字符串, 数字,对象等(如果是字符串类型必须加双引号)。

Json数组(类比Yaml中的list)

[ "Google", "Runoob", "Taobao" ]
1
JSON 中数组值必须是合法的 JSON 数据类型,如字符串, 数字,对象等。

JSON 对象中的数组(类比Yaml中map嵌套list)

{
"name":"网站",
"num":3,
"sites":[ "Google", "Runoob", "Taobao" ]
}

注1:yaml转json有相关的网站,但是转换完后的json放到格式校验中会提示RangeError: Invalid array length。解决方法是对所有的键加双引号,同时将值中的单引号修改为双引号。

注2:yaml转json网站:http://www.bejson.com/validators/yaml_editor/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值