BE 1.12 XML och andra dataformat
Table of contents
- Dataformat
 - XML - Extensible Markup Language
 - CSV - Comma-Separated Values
 - JSON - JavaScript Object Notation
 
Dataformat
Nestlad array i array i PHP:
<?php
$books = [
    [
        'title' => 'To Kill A Mockingbird',
        'author' => 'Harper Lee',
        'available' => true,
        'pages' => 336,
        'isbn' => 9780061120084
    ],
    [
        'title' => '1984',
        'author' => 'George Orwell',
        'available' => true,
        'pages' => 267,
        'isbn' => 9780547249643
    ],
    [
        'title' => 'One Hundred Years Of Solitude',
        'author' => 'Gabriel Garcia Marquez',
        'available' => false,
        'pages' => 457,
        'isbn' => 9785267006323
    ]
];
?>
Alla exempel nedan innehåller samma data som den här arrayen.
XML - Extensible Markup Language
- Meta-språk som används för att kunna semantiskt beskriva ett set med data för både människor och datorer
 - Taggar som i HTML
 - Alla valuen måste öppnas och stängas med tagg
 - Börjar med deklaration där XML-versionen anges
 - Måste ha exakt ett root-element
 - Element utan innehåll (key utan value) kan stängas direkt i starttaggen
 
Exempel
<?xml version="1.0" encoding="UTF-8"?>
<books>
    <book>
        <author>Harper Lee</author>
        <available>true</available>
        <isbn>9780061120084</isbn>
        <pages>336</pages>
        <title>To Kill A Mockingbird</title>
    </book>
    <book>
        <author>George Orwell</author>
        <available>true</available>
        <isbn>9780547249643</isbn>
        <pages>267</pages>
      <title>1984</title>
    </book>
    <book>
        <author>Gabriel Garcia Marquez</author>
        <available>false</available>
        <isbn>9785267006323</isbn>
        <pages>457</pages>
        <title>One Hundred Years Of Solitude</title>
    </book>
</books>
CSV - Comma-Separated Values
(eller Character-Separated Values eller Colon-Separated Values)
- Ser ut som i en tabell
 - Används ofta som utbyte av data mellan olika filformat (till exempel vid exporter från Excel eller import i Lucidchart)
 - Kolumnerna kan separeras med komma (
,), tab, colon (:), semicolon (;) eller vertikalt streck (|) 
Exempel
title,author,available,pages,isbn
To Kill A Mockingbird,Harper Lee,true,336,9780061120084
1984,George Orwell,true,267,9780547249643
One Hundred Years of Solitude,Gabriel Garcia Marquez,false,457,9785267006323
| title | author | available | pages | isbn | 
|---|---|---|---|---|
| To Kill A Mockingbird | Harper Lee | true | 336 | 9780061120084 | 
| 1984 | George Orwell | true | 267 | 9780547249643 | 
| One Hundred Years of Solitude | Gabriel Garcia Marquez | false | 457 | 9785267006323 | 
JSON - JavaScript Object Notation
- Bygger på två strukturer: 
- En samling av key/value par
 - En ordnad lista av värden
 
 - Vanligaste formaten för att skicka info via API
 - Syntaxen är lik object i JavaScript, med skillnaden att keysen ska ha citattecken likt en sträng
 - Giltiga values i JSON: 
- Sträng
 - Int (tal)
 - JSON object
 - Array
 - Boolean
 - NULL
 
 
Exempel
[
  {
    "title": "To Kill A Mockingbird",
    "author": "Harper Lee",
    "available": true,
    "pages": 336,
    "isbn": 9780061120084
  },
  {
    "title": "1984",
    "author": "George Orwell",
    "available": true,
    "pages": 267,
    "isbn": 9780547249643
  },
  {
    "title": "One Hundred Years Of Solitude",
    "author": "Gabriel Garcia Marquez",
    "available": false,
    "pages": 457,
    "isbn": 9785267006323
  }
]