JSON
JavaScript Object Notation (commonly abbreviated JSON) is as it name suggests, a JavaScript syntax-based markup for providing dynamic data access to web pages & web applications (often used in session-based accesses to unique data via API). With JSON a session can range from the lifetime of a single (HTTP) request, or each time it a page is loaded - to actually storing the JSON longer term in a traditional SQL database as text or a JSON Blob, or, even purely JSON-based or NoSQL databases like MongoDB. JSON is particular useful for building AJAX type of functionality, but with an even simpler to parse data model in native JavaScript. The syntax and formatting rules were designed to specify a lightweight data-interchange format that is easy for humans to both read and write. As a core design goal, it is equally important for this format to be easy for machines to parse and generate as well, though.
PROS
Advocates of JSON claim it has most of the expressiveness of XML without the overhead that well-formedness of elements (redundant tag closures), comments and/or floating CDATA blocks all tend to bring. Another commonly praised characteristic is the ability to circumvent the same-origin policy when processing JSON data via JSONP (although JSONp as an approach itself has recently come under criticism for its own security vulnerabilities), however circumventing same-origin is impossible to do when using XML or other data formats without use of a server-side proxy or other hacks/tricks that may pose an even greater security risk that requires strict whitelist/blacklist and other security approaches to close off.
CONS
Critics of JSON have often cited its lack of server-side support and limitation to browser-based applications, which is increasingly less of an issue as many native language implementations and extensions emerge; they also note the inability to represent cyclical and/or referential data structures as a shortcoming, which library implementations[1] as well as RDF/JSON (in response to inability to represent RDF) and similar initatives are trying to solve. Finally, an often debated subject is the safety of eval commonly used in processing JSON, and the potential security issues that can arise through the use of JSON in cross-domain requests (via JSONP). In the words of JSON's founder "eval is evil" and there are alternative approaches that don't rely on this, such as native parsing libraries (JSON is now native to most browsers) and HTML5 cross-domain messaging.
Specifications
- The application/json Media Type for JavaScript Object Notation (JSON): http://www.ietf.org/rfc/rfc4627.txt
JSON
- JSON spec (and large list of implementations/extensions): http://json.org
JSONP
See dedicated section: JSONp [2]
JSON Schema
Similar to XML Schema, JSON Schema proposes a structured data definition language for expressing allowed/expected elements of a JSON Object.
- JSON Schema Proposal: http://json-schema.org/
- jsonschema -- A JSON Schema Definition validator: http://code.google.com/p/jsonschema/
- JSON Schema and inputEx (comparison): http://javascript.neyric.com/blog/2009/01/26/json-schema-and-inputex/
- json-schema-2-pojo: http://www.jsonschema2pojo.org/ (Generate Plain Old Java Objects from JSON or JSON-Schema)
- Also noteworthy is Google's Resource Discovery format (for JSON): http://code.google.com/apis/discovery/v1/reference.html#resource_discovery
JSONPath
- JSONPath - XPath for JSON: http://goessner.net/articles/JsonPath/
- JSON Path evaluator: http://jsonpath.com/
- Customized notations for matching JSON in Javascript: http://mypatterns.free.fr/JS/demo/mypatterns/notations.html
- JSONPath Syntax: https://support.smartbear.com/alertsite/docs/monitors/api/endpoint/jsonpath.html[12]
- JSON parsing with JSONPath - examples: https://restfulapi.net/json-jsonpath/
JSON-RPC
- JSON-RPC: http://json-rpc.org/
SOAPjr
- SOAPjr: https://web.archive.org/web/20111231012148/http://www.soapjr.org:80/ (clean, fast AJAX APIs using JSON)
RDF/JSON
There are a few different approaches to serializing RDF as JSON (or, mapping JSON into RDF). None have been formally standardized as yet, but some of the ongoing efforts include:
- W3C - RDF/JSON spec: http://www.w3.org/2001/sw/wiki/index.php?title=RDF_Core_Work_Items#JSON [13][14]
- RDF/JSON Specification (proposal by Talis): http://n2.talis.com/wiki/RDF_JSON_Specification
- JRON: https://dvcs.w3.org/hg/rdf/raw-file/default/rdf-json/index.html [15]
- BSON spec: http://bsonspec.org/
JSON-LD
- JSON for Linking Data: http://www.json-ld.org/
- The Origins of JSON-LD: http://manu.sporny.org/2014/json-ld-origins/
Language
- Using native JSON: https://developer.mozilla.org/En/Using_native_JSON (Browser support: IE8+, FF 3.6+, Safari 5+, Chrome 9+, Opera 11+
Derivation
It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.
Structure
JSON is built on two structures:
* A collection of name/value pairs. In various languages, this is realized as an object, record, struct, dictionary, hash table, keyed list, or associative array. * An ordered list of values. In most languages, this is realized as an array, vector, list, or sequence.
These are universal data structures. Virtually all modern programming languages support them in one form or another. It makes sense that a data format that is interchangable with programming languages also be based on these structures.
In JSON, they take on these forms:
An object is an unordered set of name/value pairs. An object begins with { (left brace) and ends with } (right brace). Each name is followed by : (colon) and the name/value pairs are separated by , (comma).
Grammar
object
{} { members }
members
pair pair , members
pair
string : value
array
[] [ elements ]
elements
value value , elements
value
string number object array true false null
string
"" " chars "
chars
char char chars
char
any-Unicode-character- except-"-or-\-or- control-character \" \\ \/ \b \f \n \r \t \u four-hex-digits
number
int int frac int exp int frac exp
int
digit digit1-9 digits - digit - digit1-9 digits
frac
. digits
exp
e digits
digits
digit digit digits
e
e e+ e- E E+ E-
Security
- JSON and Browser Security: http://yuiblog.com/blog/2007/04/10/json-and-browser-security/
EXAMPLES
Example 1
{ "message": { "service": { "id": "BMI", "endpoint": "/bmi/bus-interface/savoir-wrapper.php?bmi=24&height=1.75&weight=75&mode=json", "parameter": [ {"id": "bmi", "value": "24"}, {"id": "height", "value": "179", "unit": "cm", "unit_type": "LENGTH"}, {"id": "weight", "value": "88", "unit": "kg", "unit_type": "MASS"}, ] } } }
(Equivalent XML):
<message> <service id="BMI" endpoint="/bmi/bus-interface/savoir-wrapper.php"> <parameter id="bmi" value="27.5"/> <parameter name="height" value="179" unit="cm" unit_type="LENGTH"/> <parameter name="weight" value="88" unit="kg" unit_type="MASS"/> </service> </message>
Example 2
- Google AJAX (JSON) Search API: http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=Mobile+TV&rsz=large
{ "responseData" : { "results" : [{ "GsearchResultClass" : "GwebSearch", "unescapedUrl" : "http://www.wireless.att.com/learn/messaging-internet/mobile-tv/", "url" : "http://www.wireless.att.com/learn/messaging-internet/mobile-tv/", "visibleUrl" : "www.wireless.att.com", "cacheUrl" : "http://www.google.com/search?q\u003dcache:eBCoR4tgM24J:www.wireless.att.com", "title" : "AT\u0026amp;T \u003cb\u003eMobile TV\u003c/b\u003e®", "titleNoFormatting" : "AT\u0026amp;T Mobile TV®", "content" : "Tune in anytime 24/7 for prime time TV with \u003cb\u003eMobile TV\u003c/b\u003e from AT\u0026amp;T." }, { "GsearchResultClass" : "GwebSearch", "unescapedUrl" : "http://en.wikipedia.org/wiki/Mobile_television", "url" : "http://en.wikipedia.org/wiki/Mobile_television", "visibleUrl" : "en.wikipedia.org", "cacheUrl" : "http://www.google.com/search?q\u003dcache:dEPdCpJUClkJ:en.wikipedia.org", "title" : "\u003cb\u003eMobile\u003c/b\u003e television - Wikipedia, the free encyclopedia", "titleNoFormatting" : "Mobile television - Wikipedia, the free encyclopedia", "content" : "\u003cb\u003eMobile TV\u003c/b\u003e is one of the features provided by many 3G phones. In 2005, South Korea became the first country in the world to have \u003cb\u003emobile TV\u003c/b\u003e when it started \u003cb\u003e...\u003c/b\u003e" }], "cursor" : { "pages" : [{ "start" : "0", "label" : 1 }, { "start" : "8", "label" : 2 }, { "start" : "16", "label" : 3 }, { "start" : "24", "label" : 4 }, { "start" : "32", "label" : 5 }, { "start" : "40", "label" : 6 }, { "start" : "48", "label" : 7 }, { "start" : "56", "label" : 8 }], "estimatedResultCount" : "65600000", "currentPageIndex" : 0, "moreResultsUrl" : "http://www.google.com/search?oe\u003dutf8\u0026ie\u003dutf8\u0026source\u003duds\u0026start\u003d0\u0026hl\u003den\u0026q\u003dMobile+TV" } }, "responseDetails" : null, "responseStatus" : 200 }
Parsing the results in JavaScript (with the evil of eval):
<script> var json = eval('(' + jsonText + ')'); result = json.responseData.results[1].url; document.write(result); </script>
Parsing the results in JavaScript (without eval, using json2.js by Douglas Crockford)
<script type="text/javascript" src="https://github.com/douglascrockford/JSON-js/raw/master/json2.js"></script> <script> var json = JSON.parse(jsonText); result = json.responseData.results[1].url; </script>
Tools
- JSON Viewer: http://jsonviewer.codeplex.com/[18]
- Online JSON parser: http://json.parser.online.fr/
- JSONpath - expression tool: https://jsonpath.curiousconcept.com/ (evaluate)
JQ
- JSON Query tool (JQ): https://stedolan.github.io/jq/[19]
- JQ Playground: https://jqplay.org/ (JSON Query tool sandbox to test parsing of values from a given JSON dataset)
Validator
- JSONlint - JSON Validator: http://jsonlint.com/
Editor
- Web-based JSON editor: http://www.thomasfrank.se/json_editor.html
- JSON Diff (apart from diff function, also gives a tree view of JSON): http://tlrobinson.net/projects/javascript-fun/jsondiff/
- JSON Editor online: www.jsoneditoronline.org
- JSON Editor: http://braincast.nl/samples/jsoneditor/
Converter
- Conversion from JS Object to JSON String and back: http://ajaxify.com/run/json/
- BadgerFish -- XML to JSON (Java): http://www.sklar.com/badgerfish/ (convention for translating an XML document into a JSON object)
- XML2JSON.js – an online converter (JavaScript): http://www.thomasfrank.se/xml_to_json.html
- JSON-to-HTML converter: http://json.bloople.net/
- JSON formatting: http://jsonformat.com (convert JSON to another format defined by you)
Parsers
JavaScript
- JSON JavaScript library parser: http://www.json.org/js.html
- Parsing JavaScript Object Notation (JSON) in native JS: http://www.learn-ajax-tutorial.com/Json.cfm
- Cross-browser JSON Serialization in JavaScript: http://www.sitepoint.com/javascript-json-serialization/
jQuery
- getJSON(): http://api.jquery.com/jQuery.getJSON/
- parseJSON(): http://api.jquery.com/jQuery.parseJSON/
- serializeArray(): http://api.jquery.com/serializeArray/
- jquery-json -- convert from JS to JSON and back again: http://code.google.com/p/jquery-json/ (plugin)
Java
- JSON in Java: https://web.archive.org/web/20111204034947/http://json.org/java/
- Converting JSON to POJOs Using plain Java: https://dzone.com/articles/converting-json-to-pojos-using-java
- The Ultimate JSON Library (benchmark) -- JSON.simple vs GSON vs Jackson vs JSONP: https://blog.overops.com/the-ultimate-json-library-json-simple-vs-gson-vs-jackson-vs-json/[21][22][23][24][25][26]
- JSON-simple: https://code.google.com/archive/p/json-simple/[27][28]
- GSON: https://sites.google.com/site/gson/Home | DOCS | SRC[29][30][31][32][33][34][35][36][37][38][39]
- Jackson: https://web.archive.org/web/20120321220148/http://wibaeki.fasterxml.com/JacksonHome | DOCS | SRC[40][41][42][43][44][45][46][47][48][49][50][51][52][53][54][55][56][57][58][59][60][61][62][63][64][65][66][67][68][69][70][71][72][73][74][75][76][77][78][79][80]
PHP
- How To Parse JSON With PHP: http://webhole.net/2009/08/31/how-to-read-json-data-with-php/
- How To Generate JSON With PHP and Parse It With JQuery: http://webhole.net/2010/02/12/generate-json-with-php-and-read-it-with-jquery/
- Creating and Parsing JSON data with PHP: http://roshanbh.com.np/2008/10/creating-parsing-json-data-php.html
Python
- json — JSON encoder and decoder: http://docs.python.org/library/json.html
- JSON Encoding and Decoding with Custom Objects in Python: http://blog.quaternio.net/2009/07/16/json-encoding-and-decoding-with-custom-objects-in-python/
C
- cJSON lib: http://sourceforge.net/projects/cjson/
- JSON-C - A JSON implementation in C: http://oss.metaparadigm.com/json-c/
- How to generate JSON payload in C: http://iphonesdkdev.blogspot.com/2009/04/apns-how-to-generate-json-payload-in-c.html
C++
- What's the best C++ JSON parser?: http://stackoverflow.com/questions/245973/whats-the-best-c-json-parser
- JsonCpp : http://jsoncpp.sourceforge.net/
- JSON Spirit - A C++ JSON Parser/Generator Implemented with Boost Spirit: http://www.codeproject.com/KB/recipes/JSON_Spirit.aspx
C#
- Parse JSON in C#: http://stackoverflow.com/questions/1212344/parse-json-in-c
- Playing with JSON in C#: http://www.joshholmes.com/blog/2009/01/20/PlayingWithJSON
- Json.NET: http://james.newtonking.com/pages/json-net.aspx
Objective-C
- JSON Over HTTP On The iPhone: http://www.mobileorchard.com/tutorial-json-over-http-on-the-iphone/
- json-framework -- A strict JSON parser/generator for Objective-C: http://code.google.com/p/json-framework/
XSLT
- JSONT: http://goessner.net/articles/jsont/ | DOWNLOAD
- JSONML + Browser-side-templates: http://jsonml.org/bst/
- Tempo - tiny JSON template/rendering engine (like XSLT for XML): http://twigkit.github.com/tempo/[86]
Flash/Flex
- Flex & PHP Tutorial - Transmitting data using JSON: http://www.switchonthecode.com/tutorials/flex-php-tutorial-transmitting-data-using-json
Resources
- Convert XML to JSON in PHP -- Use server-side code to streamline Ajax: http://www.ibm.com/developerworks/xml/library/x-xml2jsonphp/
- XML to JSON (using XLST Stylesheets): http://www.xml.lt/Blog/2009/01/21/XML+to+JSON
- JSONPath - XPath for JSON: http://goessner.net/articles/JsonPath/
- JSON examples: http://www.json.org/example.html
- Serialize form to JSON with jQuery: http://stackoverflow.com/questions/1184624/serialize-form-to-json-with-jquery/1186309 | EXAMPLE - jQuery JS Object to JSON String serialization
Tutorials
- Mastering JSON ( JavaScript Object Notation ): https://web.archive.org/web/20140330142238/http://www.hunlock.com/blogs/Mastering_JSON_(_JavaScript_Object_Notation_)[87]
- JSON Validation with JSON Schema: http://davidwalsh.name/json-validation
- JSON to JSONP -- Bypass Same-Origin Policy: http://www.codeproject.com/KB/aspnet/JSONToJSONP.aspx
- Prepare a JSON Web Service and access it with JQuery: http://www.codeproject.com/KB/webservices/JsonWebServiceJQuery.aspx
- An Introduction to JavaScript Object Notation (JSON) in JavaScript and ASP.NET: http://msdn.microsoft.com/en-us/library/bb299886.aspx
- Cross-domain requests with jQuery: http://james.padolsey.com/javascript/cross-domain-requests-with-jquery/
- A JSON Data Modeling Guide: https://blog.couchbase.com/a-json-data-modeling-guide/
- Generate UI from JSON with MetaWidgets: http://blog.kennardconsulting.com/2013/07/generate-ui-from-json.html
- JAVA- Send HTTP Get/Post Request and Read JSON response: http://chillyfacts.com/java-send-http-getpost-request-and-read-json-response/
- JSON in JAVA tutorial: http://www.hiteshagrawal.com/java/json-in-java
- How to convert String to JsonObject: https://stackoverflow.com/questions/25948000/how-to-convert-string-to-jsonobject[88]
- Java JSON example: https://www.journaldev.com/2315/java-json-example
- How to convert String to JsonObject: https://stackoverflow.com/questions/25948000/how-to-convert-string-to-jsonobject
- Java -- How to Parse JSONObject and JSONArrays – Beginner’s Guide: http://crunchify.com/java-how-to-parse-jsonobject-and-jsonarrays/\
- Trouble parsing a JSONArray inside a JSONArray: https://stackoverflow.com/questions/43992451/trouble-parsing-a-json-array-inside-a-json-array
- Java API for JSON Processing -- An official Introduction to new Java native JSON capabilities in Java 7: http://www.oracle.com/technetwork/articles/java/json-1973242.html[89]
- J2EE 7 - Generating JSON (WS/API) Data: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/JsonProcessing/JSONDemo.html
- Java JSON Example: http://www.journaldev.com/2315/java-json-example
- Parse JSON with org.json: https://stackoverflow.com/questions/6442347/parse-json-with-org-json
- Processing a JSON response with New JavaEE7 JSON-P API: http://java.dzone.com/articles/processing-json-response-new
- Marshalling Java to JSON in JAX-RS (further simplified in Java 8): http://java.dzone.com/articles/marshalling-java-json-jax-rs
- A Fun Little JSON Murder Mystery With IE9: http://rob.conery.io/2011/10/24/a-fun-little-json-murder-mystery-with-ie9/
- Ajax request returns 200 OK, but an error event is fired instead of success: https://stackoverflow.com/questions/6186770/ajax-request-returns-200-ok-but-an-error-event-is-fired-instead-of-success/6186905
- Java 8 - javax.json - How to get a specific value from pre-made JSON: https://stackoverflow.com/questions/36024869/java-8-javax-json-how-to-get-a-specific-value-from-pre-made-json
- Check if a JSON array is empty: https://stackoverflow.com/questions/18396073/check-if-a-json-array-is-empty
- How to Loop Through a JSON Response in JavaScript: https://www.sitepoint.com/loop-through-json-response-javascript/
- JSON jsonObject.optString() returns String “null”: https://stackoverflow.com/questions/18226288/json-jsonobject-optstring-returns-string-null#23377941
- How to get String from JSONObject without Specific Name: https://stackoverflow.com/questions/26255089/how-to-get-string-from-jsonobject-without-specific-name
- Java JSON Tutorial - JSON Java: http://www.java2s.com/Tutorials/Java/JSON/0100__JSON_Java.htm
- What is Java JSON-Binding (JSON-B)?: https://rieckpil.de/whatis-json-binding-json-b/
- How to Merge/Concat Multiple JSONObjects in Java? Best way to Combine two JSONObjects: https://crunchify.com/how-to-merge-concat-multiple-jsonobjects-in-java-best-way-to-combine-two-jsonobjects/
- How to solve JSON.parse: bad control character in string literal, in this code: https://stackoverflow.com/questions/17487058/how-to-solve-json-parse-bad-control-character-in-string-literal-in-this-code/17487154 (can't have literal control characters in string literals, you must use an escape sequence such as \b, \r, \n, or \uXXXX where XXXX is a hex code for a Unicode "code point" character)
- How to encrypt and decrypt JSON properties with JPA: https://vladmihalcea.com/encrypt-decrypt-json-jpa/
- Using Array of JSON Objects in JavaScript : https://www.delftstack.com/howto/javascript/javascript-json-array-of-objects/
External Links
- Converting between JSON and XML: http://www.xml.com/lpt/a/1658
- JSON Beats XML, or Ajaj vs Ajax: http://www.dzone.com/links/r/json_beats_xml_or_ajaj_vs_ajax.html
- json2.js - json.jar: http://www.codeweblog.com/json2-js-json-jar/
- Java and JSON: http://www.oreillynet.com/onjava/blog/2007/01/java_and_json.html
- Using JSON from Java: http://java-x.blogspot.com/2007/04/using-json-from-java.html
- Creating & Parsing JSON data with Java Servlet/Struts/JSP: http://viralpatel.net/blogs/2009/02/creating-parsing-json-data-with-java-servlet-struts-jsp-json.html
- Automatically Generating JSON from Java, and using JSON-RPC: http://courses.coreservlets.com/Course-Materials/ajax-json-utils.html
- "JSONArray" example in Java: http://www.roseindia.net/tutorials/json/jsonarray-java-example.shtml
- Introduction to JSON (in prototype.js): http://prototypejs.org/learn/json
- Making Prototype Compatible with json.js: http://www.stevekallestad.com/blog/making_prototype_compatible_with_jsonjs.html
- Parse JSON with jQuery and JavaScript: http://blog.reindel.com/2007/10/02/parse-json-with-jquery-and-javascript/
- Check if JSON keys/nodes exist: http://stackoverflow.com/questions/1129209/check-if-json-keys-nodes-exist
- Native JSON arrives in Firefox 3.1: https://blog.mozilla.org/webdev/2009/02/12/native-json-in-firefox-31/ (native JSON has been around in FF since 2009-02-12)
- Turn MySQL SELECT statement into JSON directly: http://www.thomasfrank.se/mysql_to_json.html
- Converting XML to JSON: http://onwebdevelopment.blogspot.com/2008/05/converting-xml-to-json.html
- Converting Between XML and JSON: http://www.xml.com/pub/a/2006/05/31/converting-between-xml-and-json.html
- Convert Form Data (as JSON) to XML with jQuery: http://www.docunext.com/blog/2009/01/convert-form-data-to-xml-with-jquery.html
- PHP, JSON and JavaScript usage: http://ditio.net/2008/07/17/php-json-and-javascript-usage/
- Parse Yahoo! Web Service JSON search results using Python: http://developer.yahoo.com/python/python-json.html
- Parse Yahoo! Web Service REST Calls with PHP: http://developer.yahoo.com/php/howto-parseRestPhp.html
- JSON and Associative arrays: http://ekrantz.com/index.php/2007/06/06/json-and-associative-arrays.html
- JSON Encoder/Decoder For JavaScript: http://www.openjs.com/scripts/data/json_encode.php
- JavaScript Object Notation (JSON) step-by-step guide: http://www.learn-ajax-tutorial.com/Json.cfm
- Cross browser JSON parsing: http://dbj.org/dbj/?p=470
- The Value of JSON Values: https://dzone.com/articles/json-values
- Connect Your Conversational App With JSON Web APIs: https://dzone.com/articles/connect-your-conversational-app-with-json-web-apis
- An Open Letter to Bing Regarding JSON-LD: http://www.seoskeptic.com/open-letter-bing-regarding-json-ld/
- Why JSON isn’t just for JavaScript: http://web.archive.org/web/20121221003626/http://simonwillison.net/2006/Dec/20/json/
- JSON Pros and Cons: http://myarch.com/json-pros-and-cons
- JSON Beats XML, or Ajaj vs Ajax: http://www.ajaxonomy.com/2010/xml/json-beats-xml-or-ajaj-vs-ajax
- Choosing JSON Over XML: https://dzone.com/articles/why-you-cloud-be-using-json-vs-xml
- XML is toast, long live JSON: https://www.cio.com/article/3082084/xml-is-toast-long-live-json.html
- XML is a horrendous technology (compared to JSON).: https://news.ycombinator.com/item?id=7996846
- JSON - god bless the re-inventers, its NOT EVEN XML!: http://scripting.com/2006/12/20.html#godBlessTheReinventers
- An Exploration of JSON Interoperability Vulnerabilities: https://labs.bishopfox.com/tech-blog/an-exploration-of-json-interoperability-vulnerabilities
- My Friend Almost Lost His Year-end Bonus Because of JSON.stringify: https://medium.com/frontend-canteen/my-friend-almost-lost-his-year-end-bonus-because-of-json-stringify-9da86961eb9e (so take a bit of time to understand/implement its quirks & how it works)
References
- ↑ cycle.js - support for cyclical JSON data strcutures in JS: https://github.com/douglascrockford/JSON-js/blob/master/cycle.js
- ↑ What is JSONp: http://remysharp.com/2007/10/08/what-is-jsonp/
- ↑ JSONpath - original GoogleCode project: https://code.google.com/archive/p/json-path/ | Alternative initial implementation
- ↑ JSONPath implementation: https://developer.gnome.org/json-glib/unstable/JsonPath.html
- ↑ Java JsonPath implementation: https://github.com/jayway/JsonPath
- ↑ Node.JS -- JSONPath: https://www.npmjs.com/package/JSONPath
- ↑ Apache Camel - JSONpath: https://camel.apache.org/jsonpath.html
- ↑ PHP - JSONpath: https://github.com/Skyscanner/JsonPath-PHP
- ↑ Python - JSONpath: https://pypi.python.org/pypi/jsonpath-rw
- ↑ Working with JSONPath and PHP: http://www.w3resource.com/JSON/JSONPath-with-PHP.php
- ↑ Is there a JSON equivalent of XQuery/XPath?: http://stackoverflow.com/questions/8481380/is-there-a-json-equivalent-of-xquery-xpath
- ↑ JMeter's JSON Path Extractor Plugin - Advanced Usage Scenarios: https://www.blazemeter.com/blog/advanced-usage-json-path-extractor-jmeter
- ↑ New W3C RDF working group to tackle API, JSON serialization: http://www.w3.org/QA/2010/12/new_rdf_working_group_rdfjson.html
- ↑ Serializing SPARQL Query Results in JSON: http://www.w3.org/TR/rdf-sparql-json-res/
- ↑ From JSON to RDF in Six Easy Steps with JRON: http://decentralyze.com/2010/06/04/from-json-to-rdf-in-six-easy-steps-with-jron/
- ↑ JSON.org: http://json.org
- ↑ Paste into Try-it-now to see the second search Google result for the term 'Mobile TV': http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_date_weekday
- ↑ What is Wrong with JSON Viewer on Codeplex: http://chuchuva.com/pavel/2016/07/what-is-wrong-with-json-viewer-on-codeplex/
- ↑ Parsing JSON with jq : http://www.compciv.org/recipes/cli/jq-for-parsing-json/
- ↑ PrettyPrint.js (variable dumper): https://github.com/padolsey-archive/prettyprint.js
- ↑ Performance Comparison of JSON Libraries -- Jackson vs gson vs fastjson vs JSON.simple vs JSONP: https://interviewbubble.com/performance-comparison-of-json-libraries-jackson-vs-gson-vs-fastjson-vs-json-simple-vs-jsonp/
- ↑ Comparing the JSON APIs Gson and Jackson : https://dzone.com/articles/compare-json-api
- ↑ JAXB vs. GSON and Jackson: https://tuhrig.de/jaxb-vs-gson-and-jackson/
- ↑ Jackson Vs. GSON: https://stackoverflow.com/questions/2378402/jackson-vs-gson
- ↑ GSON vs Jackson -- Which to Use for JSON in Java: http://www.doublecloud.org/2015/03/gson-vs-jackson-which-to-use-for-json-in-java/
- ↑ Jackson vs GSON: https://www.baeldung.com/jackson-vs-gson
- ↑ How to read json file into java with simple JSON library: https://stackoverflow.com/questions/10926353/how-to-read-json-file-into-java-with-simple-json-library
- ↑ JSON.simple example – Read and write JSON: https://www.mkyong.com/java/json-simple-example-read-and-write-json/
- ↑ Gson User Guide: https://sites.google.com/site/gson/gson-user-guide | GSON - Array examples
- ↑ GSON Cookbooks and Examples: https://github.com/eugenp/tutorials/tree/master/gson
- ↑ How to convert Java object to / from JSON (Gson): https://www.mkyong.com/java/how-do-convert-java-object-to-from-json-format-gson-api/
- ↑ Converting JSON data to Java object: https://stackoverflow.com/questions/1688099/converting-json-data-to-java-object/1688182#1688182
- ↑ Gson Example Tutorial Parse JSON: https://www.journaldev.com/2321/gson-example-tutorial-parse-json
- ↑ GSON - JsonParser: http://tutorials.jenkov.com/java-json/gson-jsonparser.html
- ↑ Gson — Mapping of Nested Objects: https://futurestud.io/tutorials/gson-mapping-of-nested-objects
- ↑ Gson — Mapping of Arrays and Lists of Objects: https://futurestud.io/tutorials/gson-mapping-of-arrays-and-lists-of-objects
- ↑ Using Gson to parse Json array and object with no name: https://stackoverflow.com/questions/13736122/using-gson-to-parse-json-array-and-object-with-no-name
- ↑ Using GSON to parse a JSON array: https://stackoverflow.com/questions/18421674/using-gson-to-parse-a-json-array/18421994
- ↑ JSON Manipulation Using GSON: https://dzone.com/articles/json-manipulation-using-gson
- ↑ Jackson DataBind: https://github.com/FasterXML/jackson-databind
- ↑ Jackson Cookbooks & Examples: https://github.com/eugenp/tutorials/tree/master/jackson
- ↑ Jackson 2 – Convert Java Object to / from JSON: https://www.mkyong.com/java/jackson-2-convert-java-object-to-from-json/
- ↑ Jackson Streaming API to read and write JSON: https://www.mkyong.com/java/jackson-streaming-api-to-read-and-write-json/
- ↑ Processing JSON with Jackson: https://dzone.com/articles/processing-json-with-jackson
- ↑ Jackson ObjectMapper tutorial: https://www.baeldung.com/jackson-object-mapper-tutorial
- ↑ Getting at nested values with Jackson JSON lib: http://www.baeldung.com/jackson-nested-values
- ↑ Intro to the Jackson ObjectMapper: http://www.baeldung.com/jackson-object-mapper-tutorial
- ↑ Jackson Annotation examples: https://www.baeldung.com/jackson-annotations
- ↑ Can not deserialize instance of java.util.HashMap out of START_ARRAY token: https://stackoverflow.com/questions/36519974/can-not-deserialize-instance-of-java-util-hashmap-out-of-start-array-token
- ↑ Dump object to String with Jackson: https://stackoverflow.com/questions/9767131/dump-object-to-string-with-jackson
- ↑ Convert JSON String to JsonNode (wihtout intermediary POJO/ObjectMapper) using Jackson: https://attacomsian.com/blog/jackson-convert-json-string-to-json-node
- ↑ Convert list of objects to/from JSON in java (jackson objectmapper/ example): https://makeinjava.com/convert-list-objects-to-from-json-java-jackson-objectmapper-example/
- ↑ How to convert Java object to / from JSON (Jackson): https://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/
- ↑ Jackson JSON Java Parser API Example Tutorial: https://www.journaldev.com/2324/jackson-json-java-parser-api-example-tutorial
- ↑ Converting Java objects to JSON with Jackson: https://stackoverflow.com/questions/15786129/converting-java-objects-to-json-with-jackson
- ↑ Jackson ObjectMapper: http://tutorials.jenkov.com/java-json/jackson-objectmapper.html
- ↑ Jackson Annotations for JSON (Part 1) -- Serialization & Deserialization: https://dzone.com/articles/jackson-annotations-for-json-part-1-serialization
- ↑ Processing JSON With Jackson: https://dzone.com/articles/processing-json-with-jackson
- ↑ Map Serialization and Deserialization with Jackson: http://www.baeldung.com/jackson-map
- ↑ Jackson annotations: https://github.com/FasterXML/jackson-annotations/wiki/Jackson-Annotations
- ↑ Jackson Date -- Timestamps/Dates/String formatting output of JSON Dates: http://www.baeldung.com/jackson-serialize-dates
- ↑ Ignoring new fields on JSON objects using Jackson: https://stackoverflow.com/questions/5455014/ignoring-new-fields-on-json-objects-using-jackson
- ↑ How to prevent null values inside a Map and null fields inside a bean from getting serialized through Jackson: https://stackoverflow.com/questions/11449211/how-to-prevent-null-values-inside-a-map-and-null-fields-inside-a-bean-from-getti
- ↑ How to tell Jackson to ignore a field during serialization if its value is null?: https://stackoverflow.com/questions/11757487/how-to-tell-jackson-to-ignore-a-field-during-serialization-if-its-value-is-null
- ↑ Jackson -- What happens if a property is missing?: https://stackoverflow.com/questions/8320993/jackson-what-happens-if-a-property-is-missing
- ↑ Jackson -- using @JsonIgnore and @JsonProperty annotations to exclude a property only from JSON deserialization: http://www.davismol.net/2015/03/21/jackson-using-jsonignore-and-jsonproperty-annotations-to-exclude-a-property-only-from-json-deserialization/
- ↑ How can I tell Jackson to ignore a property for which I don't have control over the source code?: https://stackoverflow.com/questions/7421474/how-can-i-tell-jackson-to-ignore-a-property-for-which-i-dont-have-control-over
- ↑ No String-argument constructor/factory method to deserialize from String value (): https://stackoverflow.com/questions/45110371/no-string-argument-constructor-factory-method-to-deserialize-from-string-value
- ↑ Jackson parsing exception -(although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value: https://stackoverflow.com/questions/50831335/jackson-parsing-exception-although-at-least-one-creator-exists-no-string-arg
- ↑ JSON Can not construct instance of JSONConcatination: no String-argument constructor/factory method to deserialize: https://stackoverflow.com/questions/46276449/json-can-not-construct-instance-of-jsonconcatination-no-string-argument-constru
- ↑ java jackson parse json array: https://stackoverflow.com/questions/49028748/java-jackson-parse-json-array/49052409#49052409
- ↑ Jackson @JsonProperty and @JsonAlias Example: https://www.concretepage.com/jackson-api/jackson-jsonproperty-and-jsonalias-example (@JsonAlias allows multiple names for a property during JSON to Java Object mapping)
- ↑ Jackson Mix-in Annotation: https://springframework.guru/jackson-mix-in-annotation/
- ↑ How do I make jackson not serialize primitives with default value: https://stackoverflow.com/questions/14434679/how-do-i-make-jackson-not-serialize-primitives-with-default-value
- ↑ Ignore missing properties during Jackson JSON deserialization in Java: https://stackoverflow.com/questions/20578846/ignore-missing-properties-during-jackson-json-deserialization-in-java
- ↑ How to tell Jackson to ignore a field during serialization if its value is null?: https://stackoverflow.com/questions/11757487/how-to-tell-jackson-to-ignore-a-field-during-serialization-if-its-value-is-null
- ↑ Jackson @JsonIgnore, @JsonIgnoreProperties and @JsonIgnoreType: https://www.concretepage.com/jackson-api/jackson-jsonignore-jsonignoreproperties-and-jsonignoretype
- ↑ Do not serialize null values at "mapper class"-level (but always include certain fields even when null) – jackson objectMapper (@JsonInclude): https://makeinjava.com/do-not-serialize-null-values-using-jackson-objectmapper-via-jsoninclude/
- ↑ Jackson JSON - @JsonInclude NON_EMPTY example: https://www.logicbig.com/tutorials/misc/jackson/json-include-non-empty.html (shows sample outputs of "no annotation" .vs. NON_EMPTY .vs. NON_NULL .vs. NON_ABSENT)
- ↑ Using Jackson ObjectMapper with Optionals: https://krzysztofgadomski.wordpress.com/2017/05/26/using-jackson-objectmapper-with-optionals/
- ↑ Merging Two JSON Documents Using Jackson: https://stackoverflow.com/questions/9895041/merging-two-json-documents-using-jackson
- ↑ Jackson JSON - Updating Existing objects with JSON input during Deserialization: https://www.logicbig.com/tutorials/misc/jackson/reader-for-updating.html
- ↑ Jackson serializing Date (and DateTime): https://www.baeldung.com/jackson-serialize-dates
- ↑ Jackson parse custom offset date time: https://stackoverflow.com/questions/46263773/jackson-parse-custom-offset-date-time
- ↑ Jackson converting LocalDatetime: https://stackoverflow.com/questions/53820977/jackson-converting-localdatetime
- ↑ XSLT equivalent for JSON: http://stackoverflow.com/questions/1618038/xslt-equivalent-for-json
- ↑ Retreiving JSON From Third Party Servers: https://web.archive.org/web/20140330142238/http://www.hunlock.com/blogs/Mastering_JSON_(_JavaScript_Object_Notation_)#quickIDX11
- ↑ Java Code Examples for javax.json.JsonObject: https://www.programcreek.com/java-api-examples/?api=javax.json.JsonObject
- ↑ JSON processing in Java: http://web.archive.org/web/20130814131734/http://docs.oracle.com/javaee/7/tutorial/doc/jsonp001.htm
See Also
REST | XML | AJAX | JavaScript