public sealed class JsonParser
Reflection-based converter from JSON to messages.
Namespace
Google.ProtobufAssembly
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 |