# Introducing Upstash JSON for Redis®

> **Source:** https://upstash.com/blog/redis-json
> **Date:** 2023-02-09
> **Author(s):** Enes Akar
> **Reading time:** 3 min read
> **Tags:** redis, json, announcement
> **Format:** text/markdown — machine-readable content for agents and LLMs

---

I am excited to announce the JSON support in Upstash for Redis®. This means Upstash is compatible [RedisJSON API](https://redis.io/docs/stack/json/). You can leverage RedisJSON API using these [client libraries](https://redis.io/docs/stack/json/clients/) as well as [Upstash SDK for Redis](/docs/redis/sdks/javascriptsdk/modules/json).

### What is RedisJSON?

  Upstash does not use or copy [RedisJSON](https://redis.io/docs/stack/json/)
  which is licensed by Redis® Ltd. Upstash provides a custom implementation of
  RedisJSON compatibility.

[RedisJSON](https://redis.io/docs/stack/json/) is a Redis® module that implements the standard specification for JSON, in Redis. It provides Redis® with native JSON data storage, manipulation, and processing capabilities, allowing developers to store, retrieve, and manipulate JSON data in Redis® using Redis® commands. With RedisJSON, developers can use Redis® as a complete solution for working with JSON data, eliminating the need to use additional data storage technologies for this purpose.

### Why is it important?

  Upstash does not use or copy [RedisJSON](https://redis.io/docs/stack/json/)
  which is licensed by Redis® Ltd. Upstash provides a custom implementation of
  RedisJSON compatibility.

RedisJSON is important because it provides native JSON support, which allows developers to work with JSON data in Redis® in a more efficient and convenient way. Prior to RedisJSON, working with JSON data in Redis® involved serializing and deserializing JSON data, which added overhead and complexity to the process.

With RedisJSON, developers can process the JSON data in Redis® using Redis® commands, just like they would with any other type of data in Redis. This eliminates the need for serialization and deserialization, making the process of working with JSON data in Redis® faster and more efficient.

In addition, RedisJSON provides a number of advanced features for working with JSON data, and perform operations on arrays and objects, and more. These features make RedisJSON a valuable tool for developers looking to store, process, and manipulate JSON data in Redis.

### Example with and without RedisJSON

We will write a simple example where we update a field in a JSON object with and without RedisJSON

**Without RedisJSON**

```jsx
// myjson -> { name: "John", age: 30 }

let myjson = await client.get("myjson");
myjson.age = 40;

await redis.set("myjson", myjson);
```

Cost of the above code is 2 Redis® calls + 1 serialization + 1 deserialization. Moreover, the operation is not atomic unless you run it on a script.

**With RedisJSON**

```jsx
await client.json.set("myjson", "$.age", 30);
```

Cost of the above code is a single Redis® call. You do not worry about atomicity as it is a single operation.

### Legal Note

Well, yes, we know RedisJSON is under the license of Redis® Ltd which is RSAL2/SSPL. Upstash did not use or copy any portion of RedisJSON. We implemented its API from scratch, compatible with the API. Indeed, even their license was non-restrictive, we would still prefer to implement it ourselves 😎.

### Closing Notes

We believe the implementation of RedisJSON compatibility into Upstash expands the potential for various use cases and solidifies Redis' position as a leading data storage solution.. We continue to improve and develop [Upstash](https://upstash.com/) guided by your feedback. Let us know your thoughts on [Twitter](https://twitter.com/upstash) or [Discord](https://discord.gg/w9SenAtbme).