syntax = "proto2";
package json_proto;
message JsonObjectField {
required string name = 1;
required JsonValue value = 2;
}
message JsonObject {
repeated JsonObjectField field = 3;
}
message JsonValue {
oneof value {
JsonObject object_value = 1;
ArrayValue array_value = 2;
NumberValue number_value = 3;
StringValue string_value = 4;
BooleanValue boolean_value = 5;
}
}
message ArrayValue {
repeated JsonValue value = 1;
}
message NumberInteger {
required int64 value = 1;
}
message NumberFloat {
required double value = 1;
}
message NumberExponent {
required int32 base = 1;
required int32 exponent = 2;
required bool use_uppercase = 3;
}
message NumberExponentFrac {
required float base = 1;
required int32 exponent = 2;
required bool use_uppercase = 3;
}
message NumberValue {
required NumberInteger integer_value = 1;
oneof value {
NumberFloat float_value = 2;
NumberExponent exponent_value = 3;
NumberExponentFrac exponent_frac_value = 4;
}
}
message StringValue {
required string value = 1;
}
message BooleanValue {
required bool value = 1;
}