# Poco::JSON

# class Handler

Library: JSON
Package: JSON
Header: Poco/JSON/Handler.h

## Description

Interface for handling parsing events generated by the JSON Parser.

An application can implement a subclass of Handler to implement callback-based parsing of a JSON document, similar to how a SAX parser would handle XML.

## Inheritance

Known Derived Classes: ParseHandler, PrintHandler

## Member Summary

Member Functions: asStruct, asVar, endArray, endObject, key, null, reset, startArray, startObject, value

## Types Aliases

### Ptr

using Ptr = SharedPtr < Handler >;

## Constructors

### Handler

Handler();

Creates an empty Handler.

## Destructor

### ~Handler

virtual ~Handler();

Destroys the Handler.

## Member Functions

### asStruct

virtual Poco::DynamicStruct asStruct() const;

Returns the result of the parser (an object, array or string), empty Var if there is no result.

### asVar

virtual Poco::Dynamic::Var asVar() const;

Returns the result of the parser (an object, array or string), empty Var if there is no result.

### endArray

virtual void endArray() = 0;

The parser has read a ], meaning the array is read.

### endObject

virtual void endObject() = 0;

The parser has read a }, meaning the object is read.

### key

virtual void key(
const std::string & k
) = 0;

A key of an object is read.

### null

virtual void null() = 0;

A null value is read.

### reset

virtual void reset() = 0;

Resets the handler state.

### startArray

virtual void startArray() = 0;

The parser has read a [, meaning a new array will be read.

### startObject

virtual void startObject() = 0;

The parser has read a {, meaning a new object will be read.

### value

virtual void value(
int v
) = 0;

An integer value is read.

### value

virtual void value(
unsigned v
) = 0;

An unsigned value is read. This will only be triggered if the value cannot fit into a signed int.

### value

virtual void value(
Int64 v
) = 0;

A 64-bit integer value is read.

### value

virtual void value(
UInt64 v
) = 0;

An unsigned 64-bit integer value is read. This will only be triggered if the value cannot fit into a signed 64-bit integer.

### value

virtual void value(
const std::string & value
) = 0;

A string value is read.

### value

virtual void value(
double d
) = 0;

A double value is read.

### value

virtual void value(
bool b
) = 0;

A boolean value is read.