YAML (Yet Another Markup Language) - Kummer 말 아 시 죠?

4255 단어
YAML 은 무엇 입 니까 (Yet Another Markup Language)
YAML 은 표기 언어 로 'Ymel' 을 읽 거나 '아 멜' 을 읽는다.
무슨 문 제 를 해결 합 니까?
다른 태그 언어 와 마찬가지 로 YAML 은 복잡 한 구조 화 데 이 터 를 저장 하 는 표준 형식 을 제공 하고 자 합 니 다. YAML 의 설계 자 는 YAML 이 다음 과 같은 몇 가지 조건 을 만족 시 키 기 를 바 랍 니 다.
  • 이런 데 이 터 는 기계 의 처 리 를 편리 하 게 할 수 있다.
  • 표 현 력 이 강하 다. 프로그램의 데이터 구 조 를 나타 내 는 데 적합 하 다.
  • 프로그램 해석 이 간단 합 니 다. 프로그램 이 파일 에서 데 이 터 를 쉽게 복원 할 수 있 습 니 다.
  • 이런 데 이 터 는 사람의 처 리 를 편리 하 게 해 야 한다.
  • 간결 하 게 쓴다.
  • 읽 기 가 편리 하 다.

  • * * 용도: * * YAML 은 데이터 의 교환 과 저장 에 자주 사 용 됩 니 다. 특히 이런 데 이 터 는 사람과 기계 가 모두 방문 해 야 할 때 입 니 다.예 를 들 어 프로필, 모델 메타 데이터 파일 등.
    관련 기술 비교
    위 에서 알 수 있 듯 이 YAML 이 해결 해 야 할 문 제 는 사실상 XML 과 JSON 등 기술 과 마찬가지 로 XML 과 JSON 이 생 긴 이상 왜 YAML 이 필요 합 니까?기계 처리 에 있어 서 XML 과 JSON 은 큰 단판 이 없 을 것 이 라 고 생각 합 니 다. 가장 큰 문 제 는 사람의 처 리 를 편리 하 게 하 는 데 있 습 니 다. 예 를 들 어 XML 은 모든 데이터 앞 뒤 에 라벨 을 붙 여야 합 니 다. 그러면 사람 에 게 너무 번 거 롭 습 니 다.XML 형식의 설명
     sina 
     www.sina.com 
    

    YAML 형식의 묘 사 는 YAML 형식 이 사람 에 게 좀 더 우호 적 인 것 이 분명 하 다.
    name:sina
    url:www.sina.com
    

    설명: 또한, 끼 워 넣 은 데이터 구조 에 대해 YAML 은 Python 과 유사 한 방식 을 지원 하 며, Json 이나 XML 의 각종 괄호 나 라벨 대신 들 여 쓰기 로 읽 기 가능 성에 있어 서 크게 개선 되 었 습 니 다.
    기술 세부 사항
    시험 주소:http://nodeca.github.io/js-yaml/ 주의: 위의 사 이 트 는 YAML 을 JSON 으로 전환 하 는 온라인 도 구 를 제공 합 니 다.YAML 의 상세 한 문법 을 소개 하기 전에 우 리 는 먼저 예 를 들 어 몇 개의 프로 그래 밍 언어 과정 과 선생님 의 정 보 를 묘 사 했 습 니 다. 여러분 보 세 요. YAML 문법 을 모 르 더 라 도 다음 YAML 이 어떤 정 보 를 설 명 했 는 지 대충 알 아 맞 힐 수 있 습 니까?
    Lessons:
    - Title: Ruby
      Teacher: 
            Name: Jack
            Age: 36
    - Title: Python
      Teacher: 
            Name: Tom
            Age: 37
    - Title: Go
      Teacher: 
            Name: Frank
            Age: 38
    

    1. 주석:
    YAML 에서 사용 하 는 줄 주석 입 니 다.
    2. 데이터 저장 - 기본 형식
    기본 유형 은 문자열 형, 수치 형, bool 형, 공 형, 날짜 시간 형 등 을 포함한다.
    2.1 문자열
    str:             #     ,        
    str: '       '   #     ,          :     ,         
    str: "        " #     ,                    ,  
    '
    ' "
    ", \ n, , 。

    2.2 여러 줄 문자열
    기본 행동: 문자열 은 여러 줄 로 쓸 수 있 습 니 다. 두 번 째 줄 부터 하나의 빈 칸 으로 들 어가 야 합 니 다.줄 바 꿈 부 호 는 빈 칸 으로 전 환 됩 니 다.
    str:   
       
       
        
    

    등가
    줄 바 꾸 기 유지: |
    str: |
       
       
       
        
    

    json { str: ' ' } 접 기 줄 바 꾸 기: >
    str: >
       
       
       
        
    

    등가
    끝 줄 바 꿈 의 거취: + (끝 줄 바 꿈 유지) - (끝 줄 바 꿈 제거)
    str: >+
       
       
       
        
     
     
    str2: >-
        
        
        
         
      
    

    등가
    2.3 불 값 과 빈 값
    true 또는 false 로 bool 값 을 표시 하고 ~ 로 빈 값 을 표시 합 니 다.
    2.4 정수 와 부동 소수점
    정수 나 부동 소수점 은 12 또는 3.1415926 과 같은 문 자 량 설명 을 직접 사용 합 니 다.
    2.5 시간 과 날짜
    날 짜 는 복합 iso 8601 형식의 년, 월, 일 표시 시간 은 ISO 8601 형식 을 사용한다.
    iso8601: 2001-12-14t21:59:43.10-05:00 
    date: 1976-07-31
    

    2.6 강제 형식 변환
    YAML 2 개 사용 가능!!bool 형식의 true 를 문자열 형식의 true 로 변환 하 는 등 강제 형식 변환 을 표시 합 니 다.
    strTrue: !!str true
       json strTrue: 'true'
    

    3 복잡 한 데이터 형식
    복잡 한 데이터 형식 은 배열 과 Key / Value 쌍 을 포함한다.
    3.1 Key / Value 쌍
    키 쌍 용: 분리 (주: 콜론 뒤에 빈 칸 추가), 여러 키 / value 쌍 은 대상 을 설명 할 수 있 습 니 다. 예 를 들 어
    name: kummer
    age: 12
    

    3.2 배열
    접속사 선 첫머리 의 연속 몇 줄 은 하나의 배열 을 구성 했다. 예 를 들 어
    pets: 
     - dog 
     - cat
    

    4 내장 데이터 구조
    끼 워 넣 은 데이터 구조 에 대해 YAML 은 두 가지 방식 을 지원 합 니 다.
  • 하 나 는 JSON 과 같은 보조 괄호 를 사용 하여 끼 워 넣 는 관 계 를 나타 내 는 것 이다. 예 를 들 어 {} 으로 대상 을 표시 하고 [] 로 배열
  • 을 나타 낸다.
  • python 과 유사 한 방식 으로 들 여 쓰기 로 끼 워 넣 기 관 계 를 표시 하고 같은 들 여 쓰기 데 이 터 는 한 단계 에 있 습 니 다.다음은 하나의 완전한 예 입 니 다. Lessons 와 Lessons 2 는 각각 두 가지 방식 으로 같은 정 보 를 묘 사 했 습 니 다. 들 여 쓰기 로 포 함 된 관 계 를 나타 내 는 것 이 가 독성 이 더 좋 은 것 같 습 니 다.
  • Lessons:
    - Title: Ruby
      Teacher: 
            Name: Jack
            Age: 36
    - Title: Python
      Teacher: 
            Name: Tom
            Age: 37
    - Title: Go
      Teacher: 
            Name: Frank
            Age: 38
    
    Lessons2: [{Title: Ruby,Teacher: {Name: Jack, Age: 36}},
    {Title: Python,Teacher: {Name: Jack, Age: 37}},
    {Title: Go,Teacher: {Name: Jack, Age: 38}}]
    

    좋은 웹페이지 즐겨찾기