What is JSON? And why do you need it?
Tags: javascript, beginners, tutorial, webdev
Published: 2020-12-25 20:57:34

Before going on to the topic [JSON](https://en.wikipedia.org/wiki/JSON), I would like to discuss a simple example because it will be a lot easier to explain [JSON](https://en.wikipedia.org/wiki/JSON) after the example.

![Thumbnail](https://dev-to-uploads.s3.amazonaws.com/i/7niixed6bqqc1a7a5pns.png)

Suppose we are developing desktop software or a web application. So, for the desktop software we need to save the changes of settings that users have made so that when he/she opens the software again at another time, he/she doesn’t need to change the settings again as he/she changed it earlier. Also, it’s a very annoying thing for a user to config the same changes at every start. Now, what about web applications? Web apps have one or more databases to store changes. Let’s think about a drawback here. Web apps need to store many temporary configuration or data to serve the user with a good experience for that session. And it’s an obvious thing that, developers can’t let an app to make the database busy for some temporary session data. Now, the question comes about how we store these changes or temporary data on storage? Confused? Again thinking about using [databases](https://en.wikipedia.org/wiki/Database) like [Oracle](https://en.wikipedia.org/wiki/Oracle_Database), [Mariadb](https://en.wikipedia.org/wiki/MariaDB)? Of course, we can do that but it’s not an efficient solution here. Ok, Keep down your thinking a bit and I’m keeping all the hard things aside, just store the data as a [Text](https://en.wikipedia.org/wiki/Text_file) file. Wow, our storing problem is solved. But a new problem is knocking at the door, how to retrieve the data and get the same [data structures](https://en.wikipedia.org/wiki/Data_structure) in the same manner that we had applied in the application? On a simple text file, there are lackings of data formation for the [data structures](https://en.wikipedia.org/wiki/Data_structure) that we use in any program. Here comes the life-saving concept of data serialization, also we are very close to jumping on [JSON](https://en.wikipedia.org/wiki/JSON).

> **What is Data Serialization?**
> 
> Data Serialization is the process of converting structured data to a format that allows sharing or storage of the data in a form that allows recovery of its original structure when needed. The reason for serializing data is finding some sort of universal format that can be easily shared across different applications.

### **What is JSON?**

[JSON](https://en.wikipedia.org/wiki/JSON) is a data interchanging format that uses human-readable text to transmit data objects consisting of data structure and it’s the most widespread format for data serialization. Simply [JSON](https://en.wikipedia.org/wiki/JSON) is text, written with JavaScript object notation. **“JavaScript Object Notation”** is the full form of [JSON](https://en.wikipedia.org/wiki/JSON). Many developers don’t like [JavaScript](https://en.wikipedia.org/wiki/JavaScript) because of their perspectives. But don’t worry, it’s alright if your knowledge is empty about [JavaScript](https://en.wikipedia.org/wiki/JavaScript).

![JSON Example](https://dev-to-uploads.s3.amazonaws.com/i/pwcvsq0ui9w5zzfvz6dc.png)

### **Why JSON?**

[JSON](https://en.wikipedia.org/wiki/JSON) is mainly intended for data interchanging among the applications. Parsing data from one application to another through [JSON](https://en.wikipedia.org/wiki/JSON) is so much easy because of its [language-independent](https://en.wikipedia.org/wiki/Language-independent_specification) data format. Almost every programming language has JSON support through official and 3rd party. Now, referencing my example, [JSON](https://en.wikipedia.org/wiki/JSON) can be used as a configuration or temporary data storing file also for any application. There is an important fact that [JSON](https://en.wikipedia.org/wiki/JSON) lacks [Abstract Data Type](https://en.wikipedia.org/wiki/Abstract_data_type) (ADT) feature because of its data serialization format which breaks the opacity of [ADT](https://en.wikipedia.org/wiki/Abstract_data_type) by potentially exposing private implementation details.

> `A very popular database named “MongoDB” uses JSON-like documents with the schema.`

---

### **Basics of JSON**

[JSON](https://en.wikipedia.org/wiki/JSON) uses “.json” for filename extension. You can write JSON file using normal text editors like [Windows](https://en.wikipedia.org/wiki/Microsoft_Windows)’s built-in Notepad. [JSON](https://en.wikipedia.org/wiki/JSON) supports String, Number, Object (JSON object)/Hashmap, Array/List, Boolean and N*ull* data types.

> ***Let’s see some examples***

#### String

```json
{
  "name": "Rizwan Hasan"
}
```

#### Number

```json
{
  "age": 20
}
```

> * JSON names require double quotes ("").
> * JSON uses a colon (“:”) for separating names and values.

#### Objects / Hashmap

```json
{
  "student": {
    "name": "Rizwan Hasan",
    "age": 21,
    "sex": "Male"
  }
}
```

> * *Here key “student” has an object value and that object has some names.*
> 
> * JSON uses curly braces (“{}”) for object separation and commas (“,”) for names separation.

#### Array / List

```json
{
  "students": [
    "Rizwan",
    "Sakib",
    "Natsu"
  ]
}
```

> * *Here key “student” have an array value and that array has some name element.*
> * JSON uses square brackets (“[]”) for array declaring and commas (“,”) for element separation.

#### Boolean

```json
{
  "answer": true
}
```

#### Null

```json
{
  "nickname": null
}
```

---

### **Data types in Nested manner**

```json
{
  "students": [
    {
      "id": 101,
      "name": "Rizwan Hasan",
      "age": 21,
      "department": "CSE",
      "sex": "Male",
      "paid": true,
      "cgpa": 2.13
    },
    {
      "id": 102,
      "name": "Faria Hasan",
      "age": 20,
      "department": "BBA",
      "sex": "Female",
      "paid": true,
      "cgpa": 3.56
    }
  ]
}
```

### **Explanation:**

Here we are storing some student's information. First, there is an object which’s key is named “students” and the value is an array blocked with square brackets. In the array, there is two student’s information. Every element of the array is also an object and they contain some information name, age, department, sex, paid, and GPA. Name, department, and sex are strings. Id, age, and, GPA is numbers. Lastly paid is boolean.

---

### **Conclusion**

So far I discussed JSON but still, there are a lot of things to know about like how to use it with different programming languages and how to do data interchanging between two or more languages. Here I only focused on giving the basics because after this pretty basic you are ready to go with JSON more advanced and also with the upgraded version of JSON called [YAML](https://en.wikipedia.org/wiki/YAML). To learn more about JSON, I suggest this free online tutorial from Tutorialspoint [here](https://www.tutorialspoint.com/json/index.htm). In the future, I will try to cover how to use JSON with popular programming languages like Python, Java, Kotlin, and C++.

---

*Share your opinion in the discussion section below and of course the questions if any.* Don't forget to follow us.

💡 ***AND SUBSCRIBING to our YouTube*** [**TechLearnersInc**](https://www.youtube.com/c/TechLearnersInc) ***and Telegram*** [**t.me/TechLearners**](https://t.me/TechLearners) ***will be amazing.***

---

### **📌 Featured in DEV Community's Twitter**
{% twitter 1342887402197708803 %}