Class JsonParser (3.23.0)

public sealed class JsonParser

Reflection-based converter from JSON to messages.

Inheritance

object > JsonParser

Namespace

Google.Protobuf

Assembly

Google.Protobuf.dll

Remarks

Instances of this class are thread-safe, with no mutable state.

This is a simple start to get JSON parsing working. As it's reflection-based, it's not as quick as baking calls into generated messages - but is a simpler implementation. (This code is generally not heavily optimized.)

Constructors

JsonParser(Settings)

public JsonParser(JsonParser.Settings settings)

Creates a new formatted with the given settings.

Parameter
Name Description
settings JsonParserSettings

The settings.

Properties

Default

public static JsonParser Default { get; }

Returns a formatter using the default settings.

Property Value
Type Description
JsonParser

Methods

Parse(TextReader, MessageDescriptor)

public IMessage Parse(TextReader jsonReader, MessageDescriptor descriptor)

Parses JSON read from jsonReader into a new message.

Parameters
Name Description
jsonReader TextReader

Reader providing the JSON to parse.

descriptor MessageDescriptor

Descriptor of message type to parse.

Returns
Type Description
IMessage
Exceptions
Type Description
InvalidJsonException

The JSON does not comply with RFC 7159

InvalidProtocolBufferException

The JSON does not represent a Protocol Buffers message correctly

Parse(string, MessageDescriptor)

public IMessage Parse(string json, MessageDescriptor descriptor)

Parses json into a new message.

Parameters
Name Description
json string

The JSON to parse.

descriptor MessageDescriptor

Descriptor of message type to parse.

Returns
Type Description
IMessage
Exceptions
Type Description
InvalidJsonException

The JSON does not comply with RFC 7159

InvalidProtocolBufferException

The JSON does not represent a Protocol Buffers message correctly

Parse<T>(TextReader)

public T Parse<T>(TextReader jsonReader) where T : IMessage, new()

Parses JSON read from jsonReader into a new message.

Parameter
Name Description
jsonReader TextReader

Reader providing the JSON to parse.

Returns
Type Description
T
Type Parameter
Name Description
T

The type of message to create.

Exceptions
Type Description
InvalidJsonException

The JSON does not comply with RFC 7159

InvalidProtocolBufferException

The JSON does not represent a Protocol Buffers message correctly

Parse<T>(string)

public T Parse<T>(string json) where T : IMessage, new()

Parses json into a new message.

Parameter
Name Description
json string

The JSON to parse.

Returns
Type Description
T
Type Parameter
Name Description
T

The type of message to create.

Exceptions
Type Description
InvalidJsonException

The JSON does not comply with RFC 7159

InvalidProtocolBufferException

The JSON does not represent a Protocol Buffers message correctly