SlideShare a Scribd company logo
Advanced JSON   Persistence Mapping, RPCs,  Cross-Domain and More. Kris Zyp [email_address] www.xucia.com www.json.com
Overview Specifications - JSON JSONT JSONPath JSON Referencing JSON Schema JSON-RPC JSPON JSON-P Tools CrossSafe JSPON Browser Persevere
JSON Overview/History JSON born from JavaScript object and array initializer syntax {“property”:”value”, “number”:2, “boolean”:true, “oddNumbers”:[1,3,5]} XML vs JSON Strengths of each
About JSON JSON = { “size” : “compact”, “readable” : true, “purposes” :  [“simple data structures”, ”object serialization”], “simple” : true, “easily parsed” : true }
XML… <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <xml xmlns:ajson=&quot;http://www.xucia.com/ page/Advanced_JSON&quot; > <size>bigger</size> <readable type=“boolean” expectation=“consumer defines booleans the same way I do”>true</readable> <purpose ambiguity=“Is this an array?”>Give semantic meaning to documents</purpose> <derived_from>SGML</derived_from> <legacy_uses>many</legacy_uses> </xml>
Interoperability Minimizing cost of communication. JSON has a lot of flexibility. Conventions don’t matter as much when we write the client & server, but will with mashups JSON Definitions help us to interoperate without having to create or understand custom JSON usage. Analogous to RSS, SOAP, and XHTML in the XML world.
Cross Domain JSON XHR Same Origin Policy Script tags can access cross site scripts Dynamic Script Tag Insertion How to know when it loads? How to know what was returned? Is JSON even a valid script?
JSONP http://bob.pythonmac.org/archives/2005/12/05/remote-json-jsonp/ Defines a parameter for defining a prefix for JSON returned in a script www.jsonsource.com/?callback=done done({“name”:”my json object”}) Yahoo, Flickr provide this for their webservices Unsecure used alone!
CrossSafe How to access cross-domain data securely? Proxy – Secure, but slower and more work. Dynamic Script Tags – Faster, more direct, but insecure, cross domain has full access to your JS environment. Alternate technologies – Flash, signed applets CrossSafe – Fast, direct access that is secure. Implements JSONRequest Specification Implements Subspace Approach Uses Dynamic Script Tag insertion in nested iframes with domain containment for sandboxing
CrossSafe Must use hostname.domain.com and make webservice.domain.com accessible Servers must support JSONP or other callback parameter JSONRequest.get(“http://www.yahoo.com/..”, function(id, value) { … } Defers to native implementation when available Show Demo: http://www.xucia.com/page/CrossSafe
JSONT http://goessner.net/articles/jsont/ Data: {  &quot;link&quot; : { &quot;uri&quot; : &quot;http://company.com&quot; ,  &quot;title&quot; : &quot;company homepage&quot;  }}  Transformation: {  &quot;link&quot; :  &quot;<a href=\&quot;{link.uri}\&quot;>{link.title}</a>&quot;  }  Result:  <a href= &quot;http://company.com&quot; >company homepage</a>
Referencing Circular References Me = {“name”:”Kris Zyp”, “spouse” : {“name”:”Nikki Zyp”}} MyWife = Me.spouse; MyWife.spouse = Me; Multiples References to single objects list = [{“name”:”first”,”child”:{“name”:”the child”}}, {“name”:”second”}] list[1].child = list[0].child;
JSON Referencing www.json.com Scope Intramessage Circular References Multiple References Intermessage Cross-Domain references Reference Methods Path  - ref: “$.prop[4]” ID  - ref: “111”
JSON Referencing (Intramessage) www.json.com Reference Methods Conventions – in string, fixups, in object Path – use $ for JSON root (per JSONPath) [{“child”:{“name”:”the child”}}, {“child”:{“$ref”:”$[0].child”}}] ID [{“child”:{“id”:”1”,“name”:”the child”}}, {“child”:{“$ref”:”1”}}] Combine – {“$ref”:”1.name”}
JSON Referencing www.json.com Intermessage – must use ID referencing Intermessage {“id”:”1”,”name”:”first”,   “ child”:{“id”:”3”,“name”:”the child”}} {“id”:”2”,”name”:”second”,   “ child”:{“$ref”:”3”}} Remote References {“id”:”2”,”name”:”second”,   “ child”:{“$ref”:”http://www.json.com/jsonObject”}}  URL rules Use the standard HTML rules for relative URLs in context GET /users/2 {“id”:”2”,”name”:”john”,”group”:{“$ref”:”../groups/1”}}
Identification Circular References Me = {“id”:”kris”,  “ name”:”Kris Zyp”, “ spouse”:{“id”:”nikki”, “ name”:”Nikki Zyp”: “ spouse”:{“$ref”:”kris”}}} Library available on json.com
JSPON www.jspon.org Background… RESTful approach for interaction and interoperability with persistent data Most JSON is used to describe persisted data Deals with complex data structures, modifications, and more JSPON = REST + JSON + Relative URLs for ids and references
JSPON  Over   HTTP Every id has an implicit (or explicit) URL using the standard relative URL approach References to ids can be used for unloaded values (lazy loading) REST service POST to an id/url to append to an object PUT to an id/url to change an object GET to an id/url to get an object DELETE to an id/url to delete an object
Identification GET http://mydomain.com/objects/myObj {“id”:”myObj”  -> http://mydomain.com/objects/myObj “ name”:”my object”, “ moreInfo”: {“$ref”:”largeObject”}, ->  http://mydomain.com/object/myObj “ crossSiteRef”: {“$ref”:”http://yourdomain.com/yourObj”}, ->  http://yourdomain.com/yourObj “ user”: {“$ref”:”../users/1”}, ->  http:// mydomain.com/object/myObj } Partial Graph Transfer/Lazy Loading Object Modification Cross Domain Object Trees
Persevere Server JSON Server Object database server Interaction through REST commands with JSON Queries through JSONPath JSPON id approach Supports JSONP JSON-RPC method calls Demo distributed calls later JSON Schema support
Persevere Server Exposes multiple data sources as JSON (JSPON): Internal OO Database SQL Databases (MySQL, HSQL, etc) XML files Data Centric Security Avoids application logic centric security Modular server – can be used with other servers
JSPON Object Browser Capable of browsing, modifying, and observing structural and access rules of data sources. Demo at: http://www.xucia.com/browser.html?id=dyna%2F100788
JSONPath XPath for JSON Influenced by XPath and E4X syntax, and traditional C/Java/JS property access syntax Examples: $.store.book[0].title -> What you think $..author -> Recursive search authors $.book[:4]    first four books $.book[?(@.price<10)] -> books under 10
JSON-RPC http://json-rpc.org/ Request method  - A string containing the name of the method to be invoked.  params  - An array of objects to pass as arguments to the method.  id  - The request id. This can be of any type. It is used to match the response with the request that it is replying to.
JSON-RPC Response result  - The object that was returned by the invoked method. This must be null in case there was an error invoking the method.  error  - An error object if there was an error invoking the method. It must be null if there was no error.  id  - This must be the same id as the request it is responding to.
JSON-RPC Example { &quot;method&quot;: &quot;echo&quot;, &quot;params&quot;: [&quot;Hello JSON-RPC&quot;], &quot;id&quot;: 1} { &quot;result&quot;: &quot;Hello JSON-RPC&quot;, &quot;error&quot;: null, &quot;id&quot;: 1}
Persevere Server Client/Server JavaScript Persistent Object Mapping Rhino Environment
JSON Schema http://www.json.com/json-schema-proposal/ Contract about valid data Influenced by XML Schema, Kwalify, RelaxNG, and ES4 Analogous to Classes in OO Languages or DTDs/Schemas in XML Defines requirements for JSON properties and other property attributes Uses Validation - data integrity Documentation Interaction UI generation (forms and code) Can be used on the client and server Compact Implementation
JSON Schema Example {“name”:{ “type”:”string”, “required”:true, “nullable”:false, “ length”:25, “description”:”Name of the person”}, “ age”:{ “type”:”number”, “minimum”:0, “maximum”:125} }
JSON Schema Example {“address”:{ “type”:{“street”:{“type”:”string”}, “state”:{“type”:”string”}}, “ description”:”Where they live”}, “ born”:{“type”:[“number”,”string”]} }
JSON Schema Example {“name”:”Kris Zyp” “ age”:30, “ spouse”:{“id”:”nikki”}, “ schema”:{“id”:”person”, “ name”:{“type”:”string”}, “ age”:{“type”:”number”}, “ spouse”:{“type”:{“$ref”:”person”}} // recursive def }}
Persevere JS Client Persistent object mapping with REST web services Orthogonal Persistence and Lazy Loading Capabilities Implements JSON-RPC Method Calls Implements Persistent JavaScript API: http://www.persistentjavascript.org Implements JSPON  With Persevere Server – End to end JS
Example Usage of Persevere var result = pjs.load(“data or query id”); var object = result[1]; var value = object.prop; object.prop = “new value”; result.push({name:”new object/row”}) Array.remove(result,object); // or splice
What Did We Not Have to Write? doAjax… (break up into multiple slides) Request controller Do sql… API to learn… Almost zero, majority of operations are standard JavaScript
Persevere JS Client Capabilities Compared to Jester – Jester is perfect for RoR Robust and scalable Lazy loading Automatic and Explicit Transactions Designed for optimistic locking/merging Auto save/Orthogonality Integration with Strands for threading/continuations Bi-directional dynamic object and structure creation and modification
Demo Demonstration of CRUD application with customer database. Fits well with other JavaScript libraries
Persevere Persisted Applications Functions/Methods can be stored in the persisted object stores Applications can exist as persistent object graphs. Persevere server implements Persistent JavaScript on the server. Distributed Computing capable with other JSPON/RPC implementators. Transparent remote calls
Persisted Application & Distributed Computing Demonstration Customers Demo Find Primes Demo Reverse Ajax Inheritance
Thank you for your time See the presentation and links to projects at: www.xucia.com/page/AdvancedJSON Xucia Incorporation www.xucia.com www.json.com email:  [email_address]   Kris Zyp 503-806-1841
Ad

More Related Content

What's hot (20)

Spring Boot and REST API
Spring Boot and REST APISpring Boot and REST API
Spring Boot and REST API
07.pallav
 
Java Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By StepJava Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By Step
Guo Albert
 
[OPD 2019] Attacking JWT tokens
[OPD 2019] Attacking JWT tokens[OPD 2019] Attacking JWT tokens
[OPD 2019] Attacking JWT tokens
OWASP
 
Angular - Chapter 5 - Directives
 Angular - Chapter 5 - Directives Angular - Chapter 5 - Directives
Angular - Chapter 5 - Directives
WebStackAcademy
 
REST API
REST APIREST API
REST API
Tofazzal Ahmed
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js Express
Eyal Vardi
 
Pushed Authorization Requests
Pushed Authorization RequestsPushed Authorization Requests
Pushed Authorization Requests
Torsten Lodderstedt
 
React js use contexts and useContext hook
React js use contexts and useContext hookReact js use contexts and useContext hook
React js use contexts and useContext hook
Piyush Jamwal
 
Introduction to JPA and Hibernate including examples
Introduction to JPA and Hibernate including examplesIntroduction to JPA and Hibernate including examples
Introduction to JPA and Hibernate including examples
ecosio GmbH
 
Groovy Tutorial
Groovy TutorialGroovy Tutorial
Groovy Tutorial
Paul King
 
JSON-LD: JSON for Linked Data
JSON-LD: JSON for Linked DataJSON-LD: JSON for Linked Data
JSON-LD: JSON for Linked Data
Gregg Kellogg
 
React Js Simplified
React Js SimplifiedReact Js Simplified
React Js Simplified
Sunil Yadav
 
Aem dispatcher – tips & tricks
Aem dispatcher – tips & tricksAem dispatcher – tips & tricks
Aem dispatcher – tips & tricks
Ashokkumar T A
 
JavaScript - Chapter 12 - Document Object Model
  JavaScript - Chapter 12 - Document Object Model  JavaScript - Chapter 12 - Document Object Model
JavaScript - Chapter 12 - Document Object Model
WebStackAcademy
 
Microservices Meetup San Francisco - August 2017 Talk on NATS
Microservices Meetup San Francisco - August 2017 Talk on NATSMicroservices Meetup San Francisco - August 2017 Talk on NATS
Microservices Meetup San Francisco - August 2017 Talk on NATS
NATS
 
RxJS + Redux + React = Amazing
RxJS + Redux + React = AmazingRxJS + Redux + React = Amazing
RxJS + Redux + React = Amazing
Jay Phelps
 
Whitebox testing of Spring Boot applications
Whitebox testing of Spring Boot applicationsWhitebox testing of Spring Boot applications
Whitebox testing of Spring Boot applications
Yura Nosenko
 
Service Oriented Architecture - Unit II - Sax
Service Oriented Architecture - Unit II - Sax Service Oriented Architecture - Unit II - Sax
Service Oriented Architecture - Unit II - Sax
Roselin Mary S
 
Testing Microservices
Testing MicroservicesTesting Microservices
Testing Microservices
Anil Allewar
 
JavaScript Object Notation (JSON)
JavaScript Object Notation (JSON)JavaScript Object Notation (JSON)
JavaScript Object Notation (JSON)
BOSS Webtech
 
Spring Boot and REST API
Spring Boot and REST APISpring Boot and REST API
Spring Boot and REST API
07.pallav
 
Java Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By StepJava Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By Step
Guo Albert
 
[OPD 2019] Attacking JWT tokens
[OPD 2019] Attacking JWT tokens[OPD 2019] Attacking JWT tokens
[OPD 2019] Attacking JWT tokens
OWASP
 
Angular - Chapter 5 - Directives
 Angular - Chapter 5 - Directives Angular - Chapter 5 - Directives
Angular - Chapter 5 - Directives
WebStackAcademy
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js Express
Eyal Vardi
 
React js use contexts and useContext hook
React js use contexts and useContext hookReact js use contexts and useContext hook
React js use contexts and useContext hook
Piyush Jamwal
 
Introduction to JPA and Hibernate including examples
Introduction to JPA and Hibernate including examplesIntroduction to JPA and Hibernate including examples
Introduction to JPA and Hibernate including examples
ecosio GmbH
 
Groovy Tutorial
Groovy TutorialGroovy Tutorial
Groovy Tutorial
Paul King
 
JSON-LD: JSON for Linked Data
JSON-LD: JSON for Linked DataJSON-LD: JSON for Linked Data
JSON-LD: JSON for Linked Data
Gregg Kellogg
 
React Js Simplified
React Js SimplifiedReact Js Simplified
React Js Simplified
Sunil Yadav
 
Aem dispatcher – tips & tricks
Aem dispatcher – tips & tricksAem dispatcher – tips & tricks
Aem dispatcher – tips & tricks
Ashokkumar T A
 
JavaScript - Chapter 12 - Document Object Model
  JavaScript - Chapter 12 - Document Object Model  JavaScript - Chapter 12 - Document Object Model
JavaScript - Chapter 12 - Document Object Model
WebStackAcademy
 
Microservices Meetup San Francisco - August 2017 Talk on NATS
Microservices Meetup San Francisco - August 2017 Talk on NATSMicroservices Meetup San Francisco - August 2017 Talk on NATS
Microservices Meetup San Francisco - August 2017 Talk on NATS
NATS
 
RxJS + Redux + React = Amazing
RxJS + Redux + React = AmazingRxJS + Redux + React = Amazing
RxJS + Redux + React = Amazing
Jay Phelps
 
Whitebox testing of Spring Boot applications
Whitebox testing of Spring Boot applicationsWhitebox testing of Spring Boot applications
Whitebox testing of Spring Boot applications
Yura Nosenko
 
Service Oriented Architecture - Unit II - Sax
Service Oriented Architecture - Unit II - Sax Service Oriented Architecture - Unit II - Sax
Service Oriented Architecture - Unit II - Sax
Roselin Mary S
 
Testing Microservices
Testing MicroservicesTesting Microservices
Testing Microservices
Anil Allewar
 
JavaScript Object Notation (JSON)
JavaScript Object Notation (JSON)JavaScript Object Notation (JSON)
JavaScript Object Notation (JSON)
BOSS Webtech
 

Viewers also liked (20)

HTTP, JSON, JavaScript, Map&Reduce built-in to MySQL
HTTP, JSON, JavaScript, Map&Reduce built-in to MySQLHTTP, JSON, JavaScript, Map&Reduce built-in to MySQL
HTTP, JSON, JavaScript, Map&Reduce built-in to MySQL
Ulf Wendel
 
JSON and REST
JSON and RESTJSON and REST
JSON and REST
Robert MacLean
 
Json
JsonJson
Json
primeteacher32
 
JSON-LD and MongoDB
JSON-LD and MongoDBJSON-LD and MongoDB
JSON-LD and MongoDB
Gregg Kellogg
 
sbt, history of JSON libraries, microservices, and schema evolution (Tokyo ver)
sbt, history of JSON libraries, microservices, and schema evolution (Tokyo ver)sbt, history of JSON libraries, microservices, and schema evolution (Tokyo ver)
sbt, history of JSON libraries, microservices, and schema evolution (Tokyo ver)
Eugene Yokota
 
Design Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIsDesign Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIs
Stormpath
 
Starting with JSON Path Expressions in Oracle 12.1.0.2
Starting with JSON Path Expressions in Oracle 12.1.0.2Starting with JSON Path Expressions in Oracle 12.1.0.2
Starting with JSON Path Expressions in Oracle 12.1.0.2
Marco Gralike
 
Running Away from JSON (or what I learned building the OneNote API)
Running Away from JSON (or what I learned building the OneNote API)Running Away from JSON (or what I learned building the OneNote API)
Running Away from JSON (or what I learned building the OneNote API)
Gareth Jones
 
The Developer Experience
The Developer ExperienceThe Developer Experience
The Developer Experience
Pamela Fox
 
RESTful JSON web databases
RESTful JSON web databasesRESTful JSON web databases
RESTful JSON web databases
kriszyp
 
JSON-RPC Proxy Generation with PHP 5
JSON-RPC Proxy Generation with PHP 5JSON-RPC Proxy Generation with PHP 5
JSON-RPC Proxy Generation with PHP 5
Stephan Schmidt
 
Мероприятия как инструмент работы с молодыми специалистами и продвижения брен...
Мероприятия как инструмент работы с молодыми специалистами и продвижения брен...Мероприятия как инструмент работы с молодыми специалистами и продвижения брен...
Мероприятия как инструмент работы с молодыми специалистами и продвижения брен...
FutureToday
 
Mars
MarsMars
Mars
raja1233
 
Uncle Ben's Recipe Video Contest Flyer
Uncle Ben's Recipe Video Contest FlyerUncle Ben's Recipe Video Contest Flyer
Uncle Ben's Recipe Video Contest Flyer
aeiser
 
Seattle SeaHawks
Seattle SeaHawksSeattle SeaHawks
Seattle SeaHawks
1apinedo
 
CouchDB Day NYC 2017: JSON Documents
CouchDB Day NYC 2017: JSON DocumentsCouchDB Day NYC 2017: JSON Documents
CouchDB Day NYC 2017: JSON Documents
IBM Cloud Data Services
 
Mars Business report
Mars  Business reportMars  Business report
Mars Business report
Yiqiao Song
 
Sara's m&m slideshow
Sara's m&m slideshowSara's m&m slideshow
Sara's m&m slideshow
reidhns1
 
03 json for java script
03 json for java script03 json for java script
03 json for java script
Ahmed Elbassel
 
The JSON REST API for WordPress
The JSON REST API for WordPressThe JSON REST API for WordPress
The JSON REST API for WordPress
Taylor Lovett
 
HTTP, JSON, JavaScript, Map&Reduce built-in to MySQL
HTTP, JSON, JavaScript, Map&Reduce built-in to MySQLHTTP, JSON, JavaScript, Map&Reduce built-in to MySQL
HTTP, JSON, JavaScript, Map&Reduce built-in to MySQL
Ulf Wendel
 
sbt, history of JSON libraries, microservices, and schema evolution (Tokyo ver)
sbt, history of JSON libraries, microservices, and schema evolution (Tokyo ver)sbt, history of JSON libraries, microservices, and schema evolution (Tokyo ver)
sbt, history of JSON libraries, microservices, and schema evolution (Tokyo ver)
Eugene Yokota
 
Design Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIsDesign Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIs
Stormpath
 
Starting with JSON Path Expressions in Oracle 12.1.0.2
Starting with JSON Path Expressions in Oracle 12.1.0.2Starting with JSON Path Expressions in Oracle 12.1.0.2
Starting with JSON Path Expressions in Oracle 12.1.0.2
Marco Gralike
 
Running Away from JSON (or what I learned building the OneNote API)
Running Away from JSON (or what I learned building the OneNote API)Running Away from JSON (or what I learned building the OneNote API)
Running Away from JSON (or what I learned building the OneNote API)
Gareth Jones
 
The Developer Experience
The Developer ExperienceThe Developer Experience
The Developer Experience
Pamela Fox
 
RESTful JSON web databases
RESTful JSON web databasesRESTful JSON web databases
RESTful JSON web databases
kriszyp
 
JSON-RPC Proxy Generation with PHP 5
JSON-RPC Proxy Generation with PHP 5JSON-RPC Proxy Generation with PHP 5
JSON-RPC Proxy Generation with PHP 5
Stephan Schmidt
 
Мероприятия как инструмент работы с молодыми специалистами и продвижения брен...
Мероприятия как инструмент работы с молодыми специалистами и продвижения брен...Мероприятия как инструмент работы с молодыми специалистами и продвижения брен...
Мероприятия как инструмент работы с молодыми специалистами и продвижения брен...
FutureToday
 
Uncle Ben's Recipe Video Contest Flyer
Uncle Ben's Recipe Video Contest FlyerUncle Ben's Recipe Video Contest Flyer
Uncle Ben's Recipe Video Contest Flyer
aeiser
 
Seattle SeaHawks
Seattle SeaHawksSeattle SeaHawks
Seattle SeaHawks
1apinedo
 
Mars Business report
Mars  Business reportMars  Business report
Mars Business report
Yiqiao Song
 
Sara's m&m slideshow
Sara's m&m slideshowSara's m&m slideshow
Sara's m&m slideshow
reidhns1
 
03 json for java script
03 json for java script03 json for java script
03 json for java script
Ahmed Elbassel
 
The JSON REST API for WordPress
The JSON REST API for WordPressThe JSON REST API for WordPress
The JSON REST API for WordPress
Taylor Lovett
 
Ad

Similar to Advanced Json (20)

Java Script Based Client Server Webapps 2
Java Script Based Client Server Webapps 2Java Script Based Client Server Webapps 2
Java Script Based Client Server Webapps 2
kriszyp
 
Json at work overview and ecosystem-v2.0
Json at work   overview and ecosystem-v2.0Json at work   overview and ecosystem-v2.0
Json at work overview and ecosystem-v2.0
Boulder Java User's Group
 
LF_APIStrat17_Embracing JSON Schema
LF_APIStrat17_Embracing JSON SchemaLF_APIStrat17_Embracing JSON Schema
LF_APIStrat17_Embracing JSON Schema
LF_APIStrat
 
Json
JsonJson
Json
soumya
 
Json
JsonJson
Json
Anand Kumar Rajana
 
Json
JsonJson
Json
Raphael Wanjiku
 
json.ppt download for free for college project
json.ppt download for free for college projectjson.ppt download for free for college project
json.ppt download for free for college project
AmitSharma397241
 
JSON Fuzzing: New approach to old problems
JSON Fuzzing: New  approach to old problemsJSON Fuzzing: New  approach to old problems
JSON Fuzzing: New approach to old problems
titanlambda
 
J s-o-n-120219575328402-3
J s-o-n-120219575328402-3J s-o-n-120219575328402-3
J s-o-n-120219575328402-3
Ramamohan Chokkam
 
Basics of JSON (JavaScript Object Notation) with examples
Basics of JSON (JavaScript Object Notation) with examplesBasics of JSON (JavaScript Object Notation) with examples
Basics of JSON (JavaScript Object Notation) with examples
Sanjeev Kumar Jaiswal
 
Hands on JSON
Hands on JSONHands on JSON
Hands on JSON
Octavian Nadolu
 
Json the-x-in-ajax1588
Json the-x-in-ajax1588Json the-x-in-ajax1588
Json the-x-in-ajax1588
Ramamohan Chokkam
 
Introduction to JSON
Introduction to JSONIntroduction to JSON
Introduction to JSON
Kanda Runapongsa Saikaew
 
Json
JsonJson
Json
Steve Fort
 
JSON & AJAX.pptx
JSON & AJAX.pptxJSON & AJAX.pptx
JSON & AJAX.pptx
dyumna2
 
Javascript2839
Javascript2839Javascript2839
Javascript2839
Ramamohan Chokkam
 
Json
JsonJson
Json
elliando dias
 
Introduction to JSON & AJAX
Introduction to JSON & AJAXIntroduction to JSON & AJAX
Introduction to JSON & AJAX
Raveendra R
 
Pythonlearn-13-WebServices.pptx
Pythonlearn-13-WebServices.pptxPythonlearn-13-WebServices.pptx
Pythonlearn-13-WebServices.pptx
nishant874609
 
Android and REST
Android and RESTAndroid and REST
Android and REST
Roman Woźniak
 
Java Script Based Client Server Webapps 2
Java Script Based Client Server Webapps 2Java Script Based Client Server Webapps 2
Java Script Based Client Server Webapps 2
kriszyp
 
LF_APIStrat17_Embracing JSON Schema
LF_APIStrat17_Embracing JSON SchemaLF_APIStrat17_Embracing JSON Schema
LF_APIStrat17_Embracing JSON Schema
LF_APIStrat
 
json.ppt download for free for college project
json.ppt download for free for college projectjson.ppt download for free for college project
json.ppt download for free for college project
AmitSharma397241
 
JSON Fuzzing: New approach to old problems
JSON Fuzzing: New  approach to old problemsJSON Fuzzing: New  approach to old problems
JSON Fuzzing: New approach to old problems
titanlambda
 
Basics of JSON (JavaScript Object Notation) with examples
Basics of JSON (JavaScript Object Notation) with examplesBasics of JSON (JavaScript Object Notation) with examples
Basics of JSON (JavaScript Object Notation) with examples
Sanjeev Kumar Jaiswal
 
JSON & AJAX.pptx
JSON & AJAX.pptxJSON & AJAX.pptx
JSON & AJAX.pptx
dyumna2
 
Introduction to JSON & AJAX
Introduction to JSON & AJAXIntroduction to JSON & AJAX
Introduction to JSON & AJAX
Raveendra R
 
Pythonlearn-13-WebServices.pptx
Pythonlearn-13-WebServices.pptxPythonlearn-13-WebServices.pptx
Pythonlearn-13-WebServices.pptx
nishant874609
 
Ad

Recently uploaded (20)

Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 

Advanced Json

  • 1. Advanced JSON Persistence Mapping, RPCs, Cross-Domain and More. Kris Zyp [email_address] www.xucia.com www.json.com
  • 2. Overview Specifications - JSON JSONT JSONPath JSON Referencing JSON Schema JSON-RPC JSPON JSON-P Tools CrossSafe JSPON Browser Persevere
  • 3. JSON Overview/History JSON born from JavaScript object and array initializer syntax {“property”:”value”, “number”:2, “boolean”:true, “oddNumbers”:[1,3,5]} XML vs JSON Strengths of each
  • 4. About JSON JSON = { “size” : “compact”, “readable” : true, “purposes” : [“simple data structures”, ”object serialization”], “simple” : true, “easily parsed” : true }
  • 5. XML… <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <xml xmlns:ajson=&quot;http://www.xucia.com/ page/Advanced_JSON&quot; > <size>bigger</size> <readable type=“boolean” expectation=“consumer defines booleans the same way I do”>true</readable> <purpose ambiguity=“Is this an array?”>Give semantic meaning to documents</purpose> <derived_from>SGML</derived_from> <legacy_uses>many</legacy_uses> </xml>
  • 6. Interoperability Minimizing cost of communication. JSON has a lot of flexibility. Conventions don’t matter as much when we write the client & server, but will with mashups JSON Definitions help us to interoperate without having to create or understand custom JSON usage. Analogous to RSS, SOAP, and XHTML in the XML world.
  • 7. Cross Domain JSON XHR Same Origin Policy Script tags can access cross site scripts Dynamic Script Tag Insertion How to know when it loads? How to know what was returned? Is JSON even a valid script?
  • 8. JSONP http://bob.pythonmac.org/archives/2005/12/05/remote-json-jsonp/ Defines a parameter for defining a prefix for JSON returned in a script www.jsonsource.com/?callback=done done({“name”:”my json object”}) Yahoo, Flickr provide this for their webservices Unsecure used alone!
  • 9. CrossSafe How to access cross-domain data securely? Proxy – Secure, but slower and more work. Dynamic Script Tags – Faster, more direct, but insecure, cross domain has full access to your JS environment. Alternate technologies – Flash, signed applets CrossSafe – Fast, direct access that is secure. Implements JSONRequest Specification Implements Subspace Approach Uses Dynamic Script Tag insertion in nested iframes with domain containment for sandboxing
  • 10. CrossSafe Must use hostname.domain.com and make webservice.domain.com accessible Servers must support JSONP or other callback parameter JSONRequest.get(“http://www.yahoo.com/..”, function(id, value) { … } Defers to native implementation when available Show Demo: http://www.xucia.com/page/CrossSafe
  • 11. JSONT http://goessner.net/articles/jsont/ Data: { &quot;link&quot; : { &quot;uri&quot; : &quot;http://company.com&quot; , &quot;title&quot; : &quot;company homepage&quot; }} Transformation: { &quot;link&quot; : &quot;<a href=\&quot;{link.uri}\&quot;>{link.title}</a>&quot; } Result: <a href= &quot;http://company.com&quot; >company homepage</a>
  • 12. Referencing Circular References Me = {“name”:”Kris Zyp”, “spouse” : {“name”:”Nikki Zyp”}} MyWife = Me.spouse; MyWife.spouse = Me; Multiples References to single objects list = [{“name”:”first”,”child”:{“name”:”the child”}}, {“name”:”second”}] list[1].child = list[0].child;
  • 13. JSON Referencing www.json.com Scope Intramessage Circular References Multiple References Intermessage Cross-Domain references Reference Methods Path - ref: “$.prop[4]” ID - ref: “111”
  • 14. JSON Referencing (Intramessage) www.json.com Reference Methods Conventions – in string, fixups, in object Path – use $ for JSON root (per JSONPath) [{“child”:{“name”:”the child”}}, {“child”:{“$ref”:”$[0].child”}}] ID [{“child”:{“id”:”1”,“name”:”the child”}}, {“child”:{“$ref”:”1”}}] Combine – {“$ref”:”1.name”}
  • 15. JSON Referencing www.json.com Intermessage – must use ID referencing Intermessage {“id”:”1”,”name”:”first”, “ child”:{“id”:”3”,“name”:”the child”}} {“id”:”2”,”name”:”second”, “ child”:{“$ref”:”3”}} Remote References {“id”:”2”,”name”:”second”, “ child”:{“$ref”:”http://www.json.com/jsonObject”}} URL rules Use the standard HTML rules for relative URLs in context GET /users/2 {“id”:”2”,”name”:”john”,”group”:{“$ref”:”../groups/1”}}
  • 16. Identification Circular References Me = {“id”:”kris”, “ name”:”Kris Zyp”, “ spouse”:{“id”:”nikki”, “ name”:”Nikki Zyp”: “ spouse”:{“$ref”:”kris”}}} Library available on json.com
  • 17. JSPON www.jspon.org Background… RESTful approach for interaction and interoperability with persistent data Most JSON is used to describe persisted data Deals with complex data structures, modifications, and more JSPON = REST + JSON + Relative URLs for ids and references
  • 18. JSPON Over HTTP Every id has an implicit (or explicit) URL using the standard relative URL approach References to ids can be used for unloaded values (lazy loading) REST service POST to an id/url to append to an object PUT to an id/url to change an object GET to an id/url to get an object DELETE to an id/url to delete an object
  • 19. Identification GET http://mydomain.com/objects/myObj {“id”:”myObj” -> http://mydomain.com/objects/myObj “ name”:”my object”, “ moreInfo”: {“$ref”:”largeObject”}, -> http://mydomain.com/object/myObj “ crossSiteRef”: {“$ref”:”http://yourdomain.com/yourObj”}, -> http://yourdomain.com/yourObj “ user”: {“$ref”:”../users/1”}, -> http:// mydomain.com/object/myObj } Partial Graph Transfer/Lazy Loading Object Modification Cross Domain Object Trees
  • 20. Persevere Server JSON Server Object database server Interaction through REST commands with JSON Queries through JSONPath JSPON id approach Supports JSONP JSON-RPC method calls Demo distributed calls later JSON Schema support
  • 21. Persevere Server Exposes multiple data sources as JSON (JSPON): Internal OO Database SQL Databases (MySQL, HSQL, etc) XML files Data Centric Security Avoids application logic centric security Modular server – can be used with other servers
  • 22. JSPON Object Browser Capable of browsing, modifying, and observing structural and access rules of data sources. Demo at: http://www.xucia.com/browser.html?id=dyna%2F100788
  • 23. JSONPath XPath for JSON Influenced by XPath and E4X syntax, and traditional C/Java/JS property access syntax Examples: $.store.book[0].title -> What you think $..author -> Recursive search authors $.book[:4]  first four books $.book[?(@.price<10)] -> books under 10
  • 24. JSON-RPC http://json-rpc.org/ Request method - A string containing the name of the method to be invoked. params - An array of objects to pass as arguments to the method. id - The request id. This can be of any type. It is used to match the response with the request that it is replying to.
  • 25. JSON-RPC Response result - The object that was returned by the invoked method. This must be null in case there was an error invoking the method. error - An error object if there was an error invoking the method. It must be null if there was no error. id - This must be the same id as the request it is responding to.
  • 26. JSON-RPC Example { &quot;method&quot;: &quot;echo&quot;, &quot;params&quot;: [&quot;Hello JSON-RPC&quot;], &quot;id&quot;: 1} { &quot;result&quot;: &quot;Hello JSON-RPC&quot;, &quot;error&quot;: null, &quot;id&quot;: 1}
  • 27. Persevere Server Client/Server JavaScript Persistent Object Mapping Rhino Environment
  • 28. JSON Schema http://www.json.com/json-schema-proposal/ Contract about valid data Influenced by XML Schema, Kwalify, RelaxNG, and ES4 Analogous to Classes in OO Languages or DTDs/Schemas in XML Defines requirements for JSON properties and other property attributes Uses Validation - data integrity Documentation Interaction UI generation (forms and code) Can be used on the client and server Compact Implementation
  • 29. JSON Schema Example {“name”:{ “type”:”string”, “required”:true, “nullable”:false, “ length”:25, “description”:”Name of the person”}, “ age”:{ “type”:”number”, “minimum”:0, “maximum”:125} }
  • 30. JSON Schema Example {“address”:{ “type”:{“street”:{“type”:”string”}, “state”:{“type”:”string”}}, “ description”:”Where they live”}, “ born”:{“type”:[“number”,”string”]} }
  • 31. JSON Schema Example {“name”:”Kris Zyp” “ age”:30, “ spouse”:{“id”:”nikki”}, “ schema”:{“id”:”person”, “ name”:{“type”:”string”}, “ age”:{“type”:”number”}, “ spouse”:{“type”:{“$ref”:”person”}} // recursive def }}
  • 32. Persevere JS Client Persistent object mapping with REST web services Orthogonal Persistence and Lazy Loading Capabilities Implements JSON-RPC Method Calls Implements Persistent JavaScript API: http://www.persistentjavascript.org Implements JSPON With Persevere Server – End to end JS
  • 33. Example Usage of Persevere var result = pjs.load(“data or query id”); var object = result[1]; var value = object.prop; object.prop = “new value”; result.push({name:”new object/row”}) Array.remove(result,object); // or splice
  • 34. What Did We Not Have to Write? doAjax… (break up into multiple slides) Request controller Do sql… API to learn… Almost zero, majority of operations are standard JavaScript
  • 35. Persevere JS Client Capabilities Compared to Jester – Jester is perfect for RoR Robust and scalable Lazy loading Automatic and Explicit Transactions Designed for optimistic locking/merging Auto save/Orthogonality Integration with Strands for threading/continuations Bi-directional dynamic object and structure creation and modification
  • 36. Demo Demonstration of CRUD application with customer database. Fits well with other JavaScript libraries
  • 37. Persevere Persisted Applications Functions/Methods can be stored in the persisted object stores Applications can exist as persistent object graphs. Persevere server implements Persistent JavaScript on the server. Distributed Computing capable with other JSPON/RPC implementators. Transparent remote calls
  • 38. Persisted Application & Distributed Computing Demonstration Customers Demo Find Primes Demo Reverse Ajax Inheritance
  • 39. Thank you for your time See the presentation and links to projects at: www.xucia.com/page/AdvancedJSON Xucia Incorporation www.xucia.com www.json.com email: [email_address] Kris Zyp 503-806-1841