# Typed JSON

## Introduction

Typed JSON are C# classes that are serializeable to JSON. This makes it easy to work with JSON documents in an object-oriented manner.

&#x20;The view-models are Typed JSON in Starcounter web apps.

[JSON-by-example](https://docs.starcounter.io/2.3.2/guides/typed-json/json-by-example) defines it, the [Code-Behind](https://docs.starcounter.io/2.3.2/guides/typed-json/code-behind) extends it, and it's [bound](https://docs.starcounter.io/2.3.2/guides/typed-json/data-bindings) to database data.

## Content

This section describes how to use Typed JSON.

* [JSON-by-example](https://docs.starcounter.io/2.3.2/guides/typed-json/json-by-example) and [Code-Behind](https://docs.starcounter.io/2.3.2/guides/typed-json/code-behind) describes how to define the Typed JSON and extend it to allow for interactivity.
* [JSON Data Bindings](https://docs.starcounter.io/2.3.2/guides/typed-json/data-bindings) explains how to initially add database data to the Typed JSON objects and then bind Typed JSON objects to database classes.
* [Callback Methods](https://docs.starcounter.io/2.3.2/guides/typed-json/callback-methods) describes the use of callback methods for certain actions on the Typed JSON objects.
* [Responding With JSON](https://docs.starcounter.io/2.3.2/guides/typed-json/responding-with-json) and [Accepting JSON in Requests](https://app.gitbook.com/guides/typed-json/accepting-JSON-in-requests/README.md) describes how to send and receive Typed JSON objects using HTTP.
* [Primitive Arrays and Single Value Types](https://docs.starcounter.io/2.3.2/guides/typed-json/primitive-arrays-and-single-value-types) and [Typed JSON Internals](https://docs.starcounter.io/2.3.2/guides/typed-json/typed-json-internals) covers topics that, in most cases, are not practically applicable but can still be useful in some niche cases.
