json: the basics - pages.di.unipi.itpages.di.unipi.it/turini/basi di...

29
BUILT IN FAIRFIELD COUNTY: FRONT END DEVELOPERS MEETUP TUES. MAY 14, 2013 JSON: The Basics

Upload: others

Post on 09-Sep-2019

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

B U I L T I N F A I R F I E L D C O U N T Y :

F R O N T E N D D E V E L O P E R S M E E T U P

T U E S . M A Y 1 4 , 2 0 1 3

JSON: The Basics

Page 2: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

About Jeff Fox (@jfox015)

16 year web development professional

(Almost) entirely self taught

Has used various Ajax-esque data technologies since 2000, including XML, MS data islands and AMF for Flash

Develops JavaScript based web apps that rely on JSON for data workflow

Page 3: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

Overview

What is JSON?

Comparisons with XML

Syntax

Data Types

Usage

Live Examples

Page 4: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

What is JSON?

Page 5: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

JSON is…

A lightweight text based data-interchange format

Completely language independent

Based on a subset of the JavaScript Programming Language

Easy to understand, manipulate and generate

Page 6: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

JSON is NOT…

Overly Complex

A “document” format

A markup language

A programming language

Page 7: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

Why use JSON?

Straightforward syntax

Easy to create and manipulate

Can be natively parsed in JavaScript using eval()

Supported by all major JavaScript frameworks

Supported by most backend technologies

Page 8: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

JSON vs. XML

Page 9: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

Much Like XML

Plain text formats

“Self-describing“ (human readable)

Hierarchical (Values can contain lists of objects or values)

Page 10: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

Not Like XML

Lighter and faster than XML

JSON uses typed objects. All XML values are type-less strings and must be parsed at runtime.

Less syntax, no semantics

Properties are immediately accessible to JavaScript code

Page 11: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

Knocks against JSON

Lack of namespaces

No inherit validation (XML has DTD and templates, but there is JSONlint)

Not extensible

It’s basically just not XML

Page 12: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

Syntax

Page 13: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

JSON Object Syntax

Unordered sets of name/value pairs

Begins with { (left brace)

Ends with } (right brace)

Each name is followed by : (colon)

Name/value pairs are separated by , (comma)

Page 14: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

JSON Example

var employeeData = {

"employee_id": 1234567,

"name": "Jeff Fox",

"hire_date": "1/1/2013",

"location": "Norwalk, CT",

"consultant": false

};

Page 15: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

Arrays in JSON

An ordered collection of values

Begins with [ (left bracket)

Ends with ] (right bracket)

Name/value pairs are separated by , (comma)

Page 16: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

JSON Array Example

var employeeData = {

"employee_id": 1236937,

"name": "Jeff Fox",

"hire_date": "1/1/2013",

"location": "Norwalk, CT",

"consultant": false,

"random_nums": [ 24,65,12,94 ]

};

Page 17: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

Data Types

Page 18: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

Data Types: Strings

Sequence of 0 or more Unicode characters

Wrapped in "double quotes“

Backslash escapement

Page 19: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

Data Types: Numbers

Integer

Real

Scientific

No octal or hex

No NaN or Infinity – Use null instead.

Page 20: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

Data Types: Booleans & Null

Booleans: true or false

Null: A value that specifies nothing or no value.

Page 21: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

Data Types: Objects & Arrays

Objects: Unordered key/value pairs wrapped in { }

Arrays: Ordered key/value pairs wrapped in [ ]

Page 22: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

JSON Usage

Page 23: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

How & When to use JSON

Transfer data to and from a server

Perform asynchronous data calls without requiring a page refresh

Working with data stores

Compile and save form or user data for local storage

Page 24: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

Where is JSON used today?

Anywhere and everywhere!

And many, many more!

Page 25: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

Simple Example

Page 26: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

Simple Demo

Build a JSON data object in code

Display raw output

Display formatted output

Manipulate via form input

Page 27: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

Questions?

Page 28: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous

Resources

Simple Demo on Github: https://github.com/jfox015/BIFC-Simple-JSON-Demo

Another JSON Tutorial: http://iviewsource.com/codingtutorials/getting-started-with-javascript-object-notation-json-for-absolute-beginners/

JSON.org: http://www.json.org/

Page 29: JSON: The Basics - pages.di.unipi.itpages.di.unipi.it/turini/Basi di Dati/Slides/10.json-slides.pdf · How & When to use JSON Transfer data to and from a server Perform asynchronous