> For the complete documentation index, see [llms.txt](https://riteshs4hu.gitbook.io/infosec-notes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://riteshs4hu.gitbook.io/infosec-notes/api-sec/intruduction/json-javascript-object-notation.md).

# JSON (JavaScript Object Notation)

JSON, which stands for JavaScript Object Notation, is a **data representation format** commonly used for *transmitting and storing data*. It is widely used in APIs (Application Programming Interfaces) for data exchange and in configuration files for various applications. JSON is known for its **lightweight and human-readable structure,** making it easy for both humans and machines to read and write.

## Data Types

JSON supports several data types, and these are fundamental to how data is structured within a JSON document:

* **Strings:** Strings are sequences of characters enclosed in double-quotes.

  For example: "Hello World" or "This is a string." They are used to represent textual data.
* **Numbers:** JSON supports both integers and floating-point numbers. Examples include 10, 1.5, -50, and scientific notation like 1.2e10. Numbers are used for representing numeric data.
* **Booleans:** JSON represents Boolean values as either "true" or "false." These are used to represent binary states, like yes/no or on/off.
* **NULL:** The "null" value in JSON is used to indicate the absence of a value or a null state. It's commonly used when a particular field doesn't have any data associated with it.
* **Arrays:** Arrays are ordered lists of values enclosed in square brackets.

  For instance, \[1, 2, 3] or \["Hello", "This is string", 10]. Arrays are used to store collections of data.
* **Objects:** JSON objects are collections of key-value pairs enclosed in curly braces. Each key is a string, followed by a colon and a value.

  For example, {"Key": "value"} or {"age": 30}. Objects are used to structure complex data hierarchies.

## Examples

**String:**

```json
{
  "name": "John Doe",
  "city": "New York"
}
```

**Number:**

```json
{
  "age": 30,
  "price": 19.99,
  "temperature": -10.5
}
```

**Booleans:**

```json
{
  "isStudent": true,
  "isAdmin": false
}
```

**NULL:**

```json
{
  "address": null,
  "phoneNumber": null
}
```

**Arrays:**

```json
{
  "fruits": ["apple", "banana", "cherry"],
  "numbers": [1, 2, 3, 4, 5]
}
```

**Objects:**

```json
{
  "person": {
    "name": "Alice",
    "age": 25,
    "city": "Los Angeles"
  },
  "book": {
    "title": "The Great Gatsby",
    "author": "F. Scott Fitzgerald"
  }
}
```

```json
{
  "name": "John Doe",
  "age": 30,
  "isStudent": false,
  "address": null,
  "favoriteNumbers": [1, 3, 7],
  "favoriteColors": ["blue", "green", "red"],
  "contact": {
    "email": "john.doe@example.com",
    "phone": {
      "home": "555-1234",
      "work": "555-5678"
    }
  },
  "isVerified": true,
  "score": 94.5,
  "languages": ["English", "French", "Spanish"],
  "birthDate": "1993-05-15",
  "friends": [
    {
      "name": "Alice",
      "age": 28,
      "isStudent": true
    },
    {
      "name": "Bob",
      "age": 32,
      "isStudent": false
    }
  ],
  "notes": "This is a sample JSON object that includes various data types."
}
```
