Alternatives to JSON logo

Alternatives to JSON

YAML, Protobuf, Avro, MongoDB, and OData are the most popular alternatives and competitors to JSON.
1.9K
1.6K
+ 1
9

What is JSON and what are its top alternatives?

JavaScript Object Notation is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language.
JSON is a tool in the Languages category of a tech stack.

Top Alternatives to JSON

  • YAML
    YAML

    A human-readable data-serialization language. It is commonly used for configuration files, but could be used in many applications where data is being stored or transmitted. ...

  • Protobuf
    Protobuf

    Protocol buffers are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data – think XML, but smaller, faster, and simpler. ...

  • Avro
    Avro

    It is a row-oriented remote procedure call and data serialization framework developed within Apache's Hadoop project. It uses JSON for defining data types and protocols, and serializes data in a compact binary format. ...

  • MongoDB
    MongoDB

    MongoDB stores data in JSON-like documents that can vary in structure, offering a dynamic, flexible schema. MongoDB was also designed for high availability and scalability, with built-in replication and auto-sharding. ...

  • OData
    OData

    It is an ISO/IEC approved, OASIS standard that defines a set of best practices for building and consuming RESTful APIs. It helps you focus on your business logic while building RESTful APIs without having to worry about the various approaches to define request and response headers, status codes, HTTP methods, URL conventions, media types, payload formats, query options, etc. ...

  • MessagePack
    MessagePack

    It is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it's faster and smaller. Small integers are encoded into a single byte, and typical short strings require only one extra byte in addition to the strings themselves. ...

  • JavaScript
    JavaScript

    JavaScript is most known as the scripting language for Web pages, but used in many non-browser environments as well such as node.js or Apache CouchDB. It is a prototype-based, multi-paradigm scripting language that is dynamic,and supports object-oriented, imperative, and functional programming styles. ...

  • Python
    Python

    Python is a general purpose programming language created by Guido Van Rossum. Python is most praised for its elegant syntax and readable code, if you are just beginning your programming career python suits you best. ...

JSON alternatives & related posts

YAML logo

YAML

485
0
A straightforward machine parsable data serialization format designed for human readability and interaction
485
0
PROS OF YAML
    Be the first to leave a pro
    CONS OF YAML
      Be the first to leave a con

      related YAML posts

      Protobuf logo

      Protobuf

      2.7K
      0
      Google's data interchange format
      2.7K
      0
      PROS OF PROTOBUF
        Be the first to leave a pro
        CONS OF PROTOBUF
          Be the first to leave a con

          related Protobuf posts

          Joshua Dean Küpper
          CEO at Scrayos UG (haftungsbeschränkt) · | 12 upvotes · 357.9K views

          We've already been monitoring Agones for a few years now, but we only adapted Kubernetes in mid 2021, so we could never use it until then. Transitioning to Kubernetes has overall been a blast. There's definitely a steep learning curve associated with it, but for us, it was certainly worth it. And Agones plays definitely a part in it.

          We previously scheduled our game servers with Docker Compose and Docker Swarm, but that always felt a little brittle and like a really "manual" process, even though everything was already dockerized. For matchmaking, we didn't have any solution yet.

          After we did tons of local testing, we deployed our first production-ready Kubernetes cluster with #kubespray and deployed Agones (with Helm) on it. The installation was very easy and the official chart had just the right amount of knobs for us!

          The aspect, that we were the most stunned about, is how seamless Agones integrates into the Kubernetes infrastructure. It reuses existing mechanisms like the Health Pings and extends them with more resource states and other properties that are unique to game servers. But you're still free to use it however you like: One GameServer per Game-Session, one GameServer for multiple Game-Sessions (in parallel or reusing existing servers), custom allocation mechanisms, webhook-based scaling, ... we didn't run into any dead ends yet.

          One thing, that I was a little worried about in the beginning, was the SDK integration, as there was no official one for Minecraft/Java. And the two available inofficial ones didn't satisfy our requirements for the SDK. Therefore, we went and developed our own SDK and ... it was super easy! Agones does publish their Protobuf files and so we could generate the stubs with #Protoc. The existing documentation regarding Client-SDKs from Agones was a great help in writing our own documentation for the interface methods.

          And they even have excellent tooling for testing your own SDK implementations. With the use of Testcontainers we could just spin up the local SDK testing image for each of the integration tests and could confirm that our SDK is working fine. We discovered a very small inconsistency for one of the interface methods, submitted an issue and a corresponding PR and it was merged within less than 24 hours.

          We've now been using Agones for a few months and it has proven to be very reliable, easy to manage and just a great tool in general.

          See more
          Avro logo

          Avro

          271
          0
          A data serialization framework
          271
          0
          PROS OF AVRO
            Be the first to leave a pro
            CONS OF AVRO
              Be the first to leave a con

              related Avro posts

              MongoDB logo

              MongoDB

              93.7K
              4.1K
              The database for giant ideas
              93.7K
              4.1K
              PROS OF MONGODB
              • 828
                Document-oriented storage
              • 593
                No sql
              • 553
                Ease of use
              • 464
                Fast
              • 410
                High performance
              • 255
                Free
              • 218
                Open source
              • 180
                Flexible
              • 145
                Replication & high availability
              • 112
                Easy to maintain
              • 42
                Querying
              • 39
                Easy scalability
              • 38
                Auto-sharding
              • 37
                High availability
              • 31
                Map/reduce
              • 27
                Document database
              • 25
                Easy setup
              • 25
                Full index support
              • 16
                Reliable
              • 15
                Fast in-place updates
              • 14
                Agile programming, flexible, fast
              • 12
                No database migrations
              • 8
                Easy integration with Node.Js
              • 8
                Enterprise
              • 6
                Enterprise Support
              • 5
                Great NoSQL DB
              • 4
                Support for many languages through different drivers
              • 3
                Schemaless
              • 3
                Aggregation Framework
              • 3
                Drivers support is good
              • 2
                Fast
              • 2
                Managed service
              • 2
                Easy to Scale
              • 2
                Awesome
              • 2
                Consistent
              • 1
                Good GUI
              • 1
                Acid Compliant
              CONS OF MONGODB
              • 6
                Very slowly for connected models that require joins
              • 3
                Not acid compliant
              • 2
                Proprietary query language

              related MongoDB posts

              Jeyabalaji Subramanian

              Recently we were looking at a few robust and cost-effective ways of replicating the data that resides in our production MongoDB to a PostgreSQL database for data warehousing and business intelligence.

              We set ourselves the following criteria for the optimal tool that would do this job: - The data replication must be near real-time, yet it should NOT impact the production database - The data replication must be horizontally scalable (based on the load), asynchronous & crash-resilient

              Based on the above criteria, we selected the following tools to perform the end to end data replication:

              We chose MongoDB Stitch for picking up the changes in the source database. It is the serverless platform from MongoDB. One of the services offered by MongoDB Stitch is Stitch Triggers. Using stitch triggers, you can execute a serverless function (in Node.js) in real time in response to changes in the database. When there are a lot of database changes, Stitch automatically "feeds forward" these changes through an asynchronous queue.

              We chose Amazon SQS as the pipe / message backbone for communicating the changes from MongoDB to our own replication service. Interestingly enough, MongoDB stitch offers integration with AWS services.

              In the Node.js function, we wrote minimal functionality to communicate the database changes (insert / update / delete / replace) to Amazon SQS.

              Next we wrote a minimal micro-service in Python to listen to the message events on SQS, pickup the data payload & mirror the DB changes on to the target Data warehouse. We implemented source data to target data translation by modelling target table structures through SQLAlchemy . We deployed this micro-service as AWS Lambda with Zappa. With Zappa, deploying your services as event-driven & horizontally scalable Lambda service is dumb-easy.

              In the end, we got to implement a highly scalable near realtime Change Data Replication service that "works" and deployed to production in a matter of few days!

              See more
              Robert Zuber

              We use MongoDB as our primary #datastore. Mongo's approach to replica sets enables some fantastic patterns for operations like maintenance, backups, and #ETL.

              As we pull #microservices from our #monolith, we are taking the opportunity to build them with their own datastores using PostgreSQL. We also use Redis to cache data we’d never store permanently, and to rate-limit our requests to partners’ APIs (like GitHub).

              When we’re dealing with large blobs of immutable data (logs, artifacts, and test results), we store them in Amazon S3. We handle any side-effects of S3’s eventual consistency model within our own code. This ensures that we deal with user requests correctly while writes are in process.

              See more
              OData logo

              OData

              57
              35
              A REST-based protocol for querying and updating data
              57
              35
              PROS OF ODATA
              • 7
                Patterns for paging, sorting, filtering
              • 5
                ISO Standard
              • 4
                Query Language
              • 3
                RESTful
              • 3
                No overfetching, no underfetching
              • 2
                Get many resources in a single request
              • 2
                Self-documenting
              • 2
                Batch requests
              • 2
                Bulk requests ("array upsert")
              • 2
                Ask for what you need, get exactly that
              • 1
                Evolve your API by following the compatibility rules
              • 1
                Resource model defines conventional operations
              • 1
                Resource Modification Language
              CONS OF ODATA
              • 1
                Overwhelming, no "baby steps" documentation

              related OData posts

              MessagePack logo

              MessagePack

              24
              1
              A binary serialization format
              24
              1
              PROS OF MESSAGEPACK
              • 1
                Lightweight
              CONS OF MESSAGEPACK
                Be the first to leave a con

                related MessagePack posts

                JavaScript logo

                JavaScript

                361.6K
                8.1K
                Lightweight, interpreted, object-oriented language with first-class functions
                361.6K
                8.1K
                PROS OF JAVASCRIPT
                • 1.7K
                  Can be used on frontend/backend
                • 1.5K
                  It's everywhere
                • 1.2K
                  Lots of great frameworks
                • 898
                  Fast
                • 746
                  Light weight
                • 425
                  Flexible
                • 392
                  You can't get a device today that doesn't run js
                • 286
                  Non-blocking i/o
                • 237
                  Ubiquitousness
                • 191
                  Expressive
                • 55
                  Extended functionality to web pages
                • 49
                  Relatively easy language
                • 46
                  Executed on the client side
                • 30
                  Relatively fast to the end user
                • 25
                  Pure Javascript
                • 21
                  Functional programming
                • 15
                  Async
                • 13
                  Full-stack
                • 12
                  Future Language of The Web
                • 12
                  Setup is easy
                • 12
                  Its everywhere
                • 11
                  Because I love functions
                • 11
                  JavaScript is the New PHP
                • 10
                  Like it or not, JS is part of the web standard
                • 9
                  Easy
                • 9
                  Can be used in backend, frontend and DB
                • 9
                  Expansive community
                • 9
                  Everyone use it
                • 8
                  Easy to hire developers
                • 8
                  Most Popular Language in the World
                • 8
                  For the good parts
                • 8
                  Can be used both as frontend and backend as well
                • 8
                  No need to use PHP
                • 8
                  Powerful
                • 7
                  Evolution of C
                • 7
                  Its fun and fast
                • 7
                  It's fun
                • 7
                  Nice
                • 7
                  Versitile
                • 7
                  Hard not to use
                • 7
                  Popularized Class-Less Architecture & Lambdas
                • 7
                  Agile, packages simple to use
                • 7
                  Supports lambdas and closures
                • 7
                  Love-hate relationship
                • 7
                  Photoshop has 3 JS runtimes built in
                • 6
                  1.6K Can be used on frontend/backend
                • 6
                  Client side JS uses the visitors CPU to save Server Res
                • 6
                  It let's me use Babel & Typescript
                • 6
                  Easy to make something
                • 6
                  Can be used on frontend/backend/Mobile/create PRO Ui
                • 5
                  Client processing
                • 5
                  What to add
                • 5
                  Everywhere
                • 5
                  Scope manipulation
                • 5
                  Function expressions are useful for callbacks
                • 5
                  Stockholm Syndrome
                • 5
                  Promise relationship
                • 5
                  Clojurescript
                • 4
                  Only Programming language on browser
                • 4
                  Because it is so simple and lightweight
                • 1
                  Easy to learn and test
                • 1
                  Easy to understand
                • 1
                  Not the best
                • 1
                  Subskill #4
                • 1
                  Hard to learn
                • 1
                  Test2
                • 1
                  Test
                • 1
                  Easy to learn
                • 0
                  Hard 彤
                CONS OF JAVASCRIPT
                • 22
                  A constant moving target, too much churn
                • 20
                  Horribly inconsistent
                • 15
                  Javascript is the New PHP
                • 9
                  No ability to monitor memory utilitization
                • 8
                  Shows Zero output in case of ANY error
                • 7
                  Thinks strange results are better than errors
                • 6
                  Can be ugly
                • 3
                  No GitHub
                • 2
                  Slow
                • 0
                  HORRIBLE DOCUMENTS, faulty code, repo has bugs

                related JavaScript posts

                Zach Holman

                Oof. I have truly hated JavaScript for a long time. Like, for over twenty years now. Like, since the Clinton administration. It's always been a nightmare to deal with all of the aspects of that silly language.

                But wowza, things have changed. Tooling is just way, way better. I'm primarily web-oriented, and using React and Apollo together the past few years really opened my eyes to building rich apps. And I deeply apologize for using the phrase rich apps; I don't think I've ever said such Enterprisey words before.

                But yeah, things are different now. I still love Rails, and still use it for a lot of apps I build. But it's that silly rich apps phrase that's the problem. Users have way more comprehensive expectations than they did even five years ago, and the JS community does a good job at building tools and tech that tackle the problems of making heavy, complicated UI and frontend work.

                Obviously there's a lot of things happening here, so just saying "JavaScript isn't terrible" might encompass a huge amount of libraries and frameworks. But if you're like me, yeah, give things another shot- I'm somehow not hating on JavaScript anymore and... gulp... I kinda love it.

                See more
                Conor Myhrvold
                Tech Brand Mgr, Office of CTO at Uber · | 44 upvotes · 12.7M views

                How Uber developed the open source, end-to-end distributed tracing Jaeger , now a CNCF project:

                Distributed tracing is quickly becoming a must-have component in the tools that organizations use to monitor their complex, microservice-based architectures. At Uber, our open source distributed tracing system Jaeger saw large-scale internal adoption throughout 2016, integrated into hundreds of microservices and now recording thousands of traces every second.

                Here is the story of how we got here, from investigating off-the-shelf solutions like Zipkin, to why we switched from pull to push architecture, and how distributed tracing will continue to evolve:

                https://eng.uber.com/distributed-tracing/

                (GitHub Pages : https://www.jaegertracing.io/, GitHub: https://github.com/jaegertracing/jaeger)

                Bindings/Operator: Python Java Node.js Go C++ Kubernetes JavaScript OpenShift C# Apache Spark

                See more
                Python logo

                Python

                245.3K
                6.9K
                A clear and powerful object-oriented programming language, comparable to Perl, Ruby, Scheme, or Java.
                245.3K
                6.9K
                PROS OF PYTHON
                • 1.2K
                  Great libraries
                • 963
                  Readable code
                • 847
                  Beautiful code
                • 788
                  Rapid development
                • 691
                  Large community
                • 438
                  Open source
                • 393
                  Elegant
                • 282
                  Great community
                • 273
                  Object oriented
                • 221
                  Dynamic typing
                • 77
                  Great standard library
                • 60
                  Very fast
                • 55
                  Functional programming
                • 50
                  Easy to learn
                • 46
                  Scientific computing
                • 35
                  Great documentation
                • 29
                  Productivity
                • 28
                  Matlab alternative
                • 28
                  Easy to read
                • 24
                  Simple is better than complex
                • 20
                  It's the way I think
                • 19
                  Imperative
                • 18
                  Very programmer and non-programmer friendly
                • 18
                  Free
                • 17
                  Machine learning support
                • 17
                  Powerfull language
                • 16
                  Fast and simple
                • 14
                  Scripting
                • 12
                  Explicit is better than implicit
                • 11
                  Ease of development
                • 10
                  Clear and easy and powerfull
                • 9
                  Unlimited power
                • 8
                  Import antigravity
                • 8
                  It's lean and fun to code
                • 7
                  Print "life is short, use python"
                • 7
                  Python has great libraries for data processing
                • 6
                  High Documented language
                • 6
                  I love snakes
                • 6
                  Readability counts
                • 6
                  Rapid Prototyping
                • 6
                  Now is better than never
                • 6
                  Although practicality beats purity
                • 6
                  Flat is better than nested
                • 6
                  Great for tooling
                • 6
                  There should be one-- and preferably only one --obvious
                • 6
                  Fast coding and good for competitions
                • 5
                  Web scraping
                • 5
                  Lists, tuples, dictionaries
                • 5
                  Great for analytics
                • 4
                  Beautiful is better than ugly
                • 4
                  Easy to learn and use
                • 4
                  Easy to setup and run smooth
                • 4
                  Multiple Inheritence
                • 4
                  CG industry needs
                • 4
                  Socially engaged community
                • 4
                  Complex is better than complicated
                • 4
                  Plotting
                • 4
                  Simple and easy to learn
                • 3
                  List comprehensions
                • 3
                  Powerful language for AI
                • 3
                  Flexible and easy
                • 3
                  It is Very easy , simple and will you be love programmi
                • 3
                  Many types of collections
                • 3
                  If the implementation is easy to explain, it may be a g
                • 3
                  If the implementation is hard to explain, it's a bad id
                • 3
                  Special cases aren't special enough to break the rules
                • 3
                  Pip install everything
                • 3
                  No cruft
                • 3
                  Generators
                • 3
                  Import this
                • 2
                  Batteries included
                • 2
                  Securit
                • 2
                  Can understand easily who are new to programming
                • 2
                  Should START with this but not STICK with This
                • 2
                  A-to-Z
                • 2
                  Because of Netflix
                • 2
                  Only one way to do it
                • 2
                  Better outcome
                • 2
                  Good for hacking
                • 1
                  Best friend for NLP
                • 1
                  Sexy af
                • 1
                  Procedural programming
                • 1
                  Automation friendly
                • 1
                  Slow
                • 0
                  Keep it simple
                • 0
                  Powerful
                • 0
                  Ni
                CONS OF PYTHON
                • 53
                  Still divided between python 2 and python 3
                • 28
                  Performance impact
                • 26
                  Poor syntax for anonymous functions
                • 22
                  GIL
                • 19
                  Package management is a mess
                • 14
                  Too imperative-oriented
                • 12
                  Hard to understand
                • 12
                  Dynamic typing
                • 12
                  Very slow
                • 8
                  Indentations matter a lot
                • 8
                  Not everything is expression
                • 7
                  Incredibly slow
                • 7
                  Explicit self parameter in methods
                • 6
                  Requires C functions for dynamic modules
                • 6
                  Poor DSL capabilities
                • 6
                  No anonymous functions
                • 5
                  Fake object-oriented programming
                • 5
                  Threading
                • 5
                  The "lisp style" whitespaces
                • 5
                  Official documentation is unclear.
                • 5
                  Hard to obfuscate
                • 5
                  Circular import
                • 4
                  Lack of Syntax Sugar leads to "the pyramid of doom"
                • 4
                  The benevolent-dictator-for-life quit
                • 4
                  Not suitable for autocomplete
                • 2
                  Meta classes
                • 1
                  Training wheels (forced indentation)

                related Python posts

                Conor Myhrvold
                Tech Brand Mgr, Office of CTO at Uber · | 44 upvotes · 12.7M views

                How Uber developed the open source, end-to-end distributed tracing Jaeger , now a CNCF project:

                Distributed tracing is quickly becoming a must-have component in the tools that organizations use to monitor their complex, microservice-based architectures. At Uber, our open source distributed tracing system Jaeger saw large-scale internal adoption throughout 2016, integrated into hundreds of microservices and now recording thousands of traces every second.

                Here is the story of how we got here, from investigating off-the-shelf solutions like Zipkin, to why we switched from pull to push architecture, and how distributed tracing will continue to evolve:

                https://eng.uber.com/distributed-tracing/

                (GitHub Pages : https://www.jaegertracing.io/, GitHub: https://github.com/jaegertracing/jaeger)

                Bindings/Operator: Python Java Node.js Go C++ Kubernetes JavaScript OpenShift C# Apache Spark

                See more
                Nick Parsons
                Building cool things on the internet 🛠️ at Stream · | 35 upvotes · 4.3M views

                Winds 2.0 is an open source Podcast/RSS reader developed by Stream with a core goal to enable a wide range of developers to contribute.

                We chose JavaScript because nearly every developer knows or can, at the very least, read JavaScript. With ES6 and Node.js v10.x.x, it’s become a very capable language. Async/Await is powerful and easy to use (Async/Await vs Promises). Babel allows us to experiment with next-generation JavaScript (features that are not in the official JavaScript spec yet). Yarn allows us to consistently install packages quickly (and is filled with tons of new tricks)

                We’re using JavaScript for everything – both front and backend. Most of our team is experienced with Go and Python, so Node was not an obvious choice for this app.

                Sure... there will be haters who refuse to acknowledge that there is anything remotely positive about JavaScript (there are even rants on Hacker News about Node.js); however, without writing completely in JavaScript, we would not have seen the results we did.

                #FrameworksFullStack #Languages

                See more