Alternatives to JSON logo

Alternatives to JSON

YAML, Protobuf, Avro, MongoDB, and OData are the most popular alternatives and competitors to JSON.
558
445
+ 1
0

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.

JSON alternatives & related posts

YAML logo

YAML

80
49
0
80
49
+ 1
0
A straightforward machine parsable data serialization format designed for human readability and interaction
    Be the first to leave a pro
    YAML logo
    YAML
    VS
    JSON logo
    JSON
    Protobuf logo

    Protobuf

    153
    96
    0
    153
    96
    + 1
    0
    Google's data interchange format
      Be the first to leave a pro
      Protobuf logo
      Protobuf
      VS
      JSON logo
      JSON
      Avro logo

      Avro

      41
      35
      0
      41
      35
      + 1
      0
      A data serialization framework
        Be the first to leave a pro
        Avro logo
        Avro
        VS
        JSON logo
        JSON
        MongoDB logo

        MongoDB

        21.3K
        17.9K
        3.9K
        21.3K
        17.9K
        + 1
        3.9K
        The database for giant ideas
        MongoDB logo
        MongoDB
        VS
        JSON logo
        JSON

        related MongoDB posts

        Jeyabalaji Subramanian
        Jeyabalaji Subramanian
        CTO at FundsCorner · | 24 upvotes · 733.7K views
        atFundsCornerFundsCorner
        MongoDB
        MongoDB
        PostgreSQL
        PostgreSQL
        MongoDB Stitch
        MongoDB Stitch
        Node.js
        Node.js
        Amazon SQS
        Amazon SQS
        Python
        Python
        SQLAlchemy
        SQLAlchemy
        AWS Lambda
        AWS Lambda
        Zappa
        Zappa

        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
        Robert Zuber
        CTO at CircleCI · | 22 upvotes · 550.8K views
        atCircleCICircleCI
        MongoDB
        MongoDB
        PostgreSQL
        PostgreSQL
        Redis
        Redis
        GitHub
        GitHub
        Amazon S3
        Amazon S3

        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

        12
        12
        0
        12
        12
        + 1
        0
        A REST-based protocol for querying and updating data
          Be the first to leave a pro
          OData logo
          OData
          VS
          JSON logo
          JSON
          MessagePack logo

          MessagePack

          9
          13
          0
          9
          13
          + 1
          0
          A binary serialization format
            Be the first to leave a pro
            MessagePack logo
            MessagePack
            VS
            JSON logo
            JSON

            related JavaScript posts

            Nick Parsons
            Nick Parsons
            Director of Developer Marketing at Stream · | 34 upvotes · 523.7K views
            atStreamStream
            Stream
            Stream
            Go
            Go
            JavaScript
            JavaScript
            ES6
            ES6
            Node.js
            Node.js
            Babel
            Babel
            Yarn
            Yarn
            Python
            Python
            #FrameworksFullStack
            #Languages

            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
            Yshay Yaacobi
            Yshay Yaacobi
            Software Engineer · | 29 upvotes · 649K views
            atSolutoSoluto
            Docker Swarm
            Docker Swarm
            .NET
            .NET
            F#
            F#
            C#
            C#
            JavaScript
            JavaScript
            TypeScript
            TypeScript
            Go
            Go
            Visual Studio Code
            Visual Studio Code
            Kubernetes
            Kubernetes

            Our first experience with .NET core was when we developed our OSS feature management platform - Tweek (https://github.com/soluto/tweek). We wanted to create a solution that is able to run anywhere (super important for OSS), has excellent performance characteristics and can fit in a multi-container architecture. We decided to implement our rule engine processor in F# , our main service was implemented in C# and other components were built using JavaScript / TypeScript and Go.

            Visual Studio Code worked really well for us as well, it worked well with all our polyglot services and the .Net core integration had great cross-platform developer experience (to be fair, F# was a bit trickier) - actually, each of our team members used a different OS (Ubuntu, macos, windows). Our production deployment ran for a time on Docker Swarm until we've decided to adopt Kubernetes with almost seamless migration process.

            After our positive experience of running .Net core workloads in containers and developing Tweek's .Net services on non-windows machines, C# had gained back some of its popularity (originally lost to Node.js), and other teams have been using it for developing microservices, k8s sidecars (like https://github.com/Soluto/airbag), cli tools, serverless functions and other projects...

            See more
            PHP logo

            PHP

            64.8K
            20.1K
            4.3K
            64.8K
            20.1K
            + 1
            4.3K
            A popular general-purpose scripting language that is especially suited to web development
            PHP logo
            PHP
            VS
            JSON logo
            JSON

            related PHP posts

            Nick Rockwell
            Nick Rockwell
            CTO at NY Times · | 29 upvotes · 656.4K views
            atThe New York TimesThe New York Times
            MySQL
            MySQL
            PHP
            PHP
            React
            React
            Apollo
            Apollo
            GraphQL
            GraphQL
            Node.js
            Node.js
            Kafka
            Kafka
            Apache HTTP Server
            Apache HTTP Server

            When I joined NYT there was already broad dissatisfaction with the LAMP (Linux Apache HTTP Server MySQL PHP) Stack and the front end framework, in particular. So, I wasn't passing judgment on it. I mean, LAMP's fine, you can do good work in LAMP. It's a little dated at this point, but it's not ... I didn't want to rip it out for its own sake, but everyone else was like, "We don't like this, it's really inflexible." And I remember from being outside the company when that was called MIT FIVE when it had launched. And been observing it from the outside, and I was like, you guys took so long to do that and you did it so carefully, and yet you're not happy with your decisions. Why is that? That was more the impetus. If we're going to do this again, how are we going to do it in a way that we're gonna get a better result?

            So we're moving quickly away from LAMP, I would say. So, right now, the new front end is React based and using Apollo. And we've been in a long, protracted, gradual rollout of the core experiences.

            React is now talking to GraphQL as a primary API. There's a Node.js back end, to the front end, which is mainly for server-side rendering, as well.

            Behind there, the main repository for the GraphQL server is a big table repository, that we call Bodega because it's a convenience store. And that reads off of a Kafka pipeline.

            See more
            Ali Soueidan
            Ali Soueidan
            Creative Web Developer at Ali Soueidan · | 17 upvotes · 298.1K views
            npm
            npm
            Vue.js
            Vue.js
            vuex
            vuex
            JavaScript
            JavaScript
            Pug
            Pug
            Sass
            Sass
            JSON
            JSON
            Git
            Git
            GitHub
            GitHub
            ES6
            ES6
            Asana
            Asana
            Adobe Illustrator
            Adobe Illustrator
            PHP
            PHP
            Babel
            Babel

            Application and Data: Since my personal website ( https://alisoueidan.com ) is a SPA I've chosen to use Vue.js, as a framework to create it. After a short skeptical phase I immediately felt in love with the single file component concept! I also used vuex for state management, which makes working with several components, which are communicating with each other even more fun and convenient to use. Of course, using Vue requires using JavaScript as well, since it is the basis of it.

            For markup and style, I used Pug and Sass, since they’re the perfect match to me. I love the clean and strict syntax of both of them and even more that their structure is almost similar. Also, both of them come with an expanded functionality such as mixins, loops and so on related to their “siblings” (HTML and CSS). Both of them require nesting and prevent untidy code, which can be a huge advantage when working in teams. I used JSON to store data (since the data quantity on my website is moderate) – JSON works also good in combo with Pug, using for loops, based on the JSON Objects for example.

            To send my contact form I used PHP, since sending emails using PHP is still relatively convenient, simple and easy done.

            DevOps: Of course, I used Git to do my version management (which I even do in smaller projects like my website just have an additional backup of my code). On top of that I used GitHub since it now supports private repository for free accounts (which I am using for my own). I use Babel to use ES6 functionality such as arrow functions and so on, and still don’t losing cross browser compatibility.

            Side note: I used npm for package management. 🎉

            *Business Tools: * I use Asana to organize my project. This is a big advantage to me, even if I work alone, since “private” projects can get interrupted for some time. By using Asana I still know (even after month of not touching a project) what I’ve done, on which task I was at last working on and what still is to do. Working in Teams (for enterprise I’d take on Jira instead) of course Asana is a Tool which I really love to use as well. All the graphics on my website are SVG which I have created with Adobe Illustrator and adjusted within the SVG code or by using JavaScript or CSS (SASS).

            See more