public sealed class JsonParser : object
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(JsonParser.Settings)
public JsonParser(JsonParser.Settings settings)
Creates a new formatted with the given settings.
Parameter | |
---|---|
Name | Description |
settings | JsonParser.Settings The settings. |
Properties
Default
public static JsonParser Default { get; }
Returns a formatter using the default settings.
Property Value | |
---|---|
Type | Description |
JsonParser |
Methods
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(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<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 |
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 |