pub fn json_to_variant(
json: &str,
builder: &mut VariantBuilder,
) -> Result<(), ArrowError>
Expand description
Converts a JSON string to Variant using [VariantBuilder
]. The resulting value
and metadata
buffers can be extracted using builder.finish()
§Arguments
json
- The JSON string to parse as Variant.variant_builder
- Object of typeVariantBuilder
used to build the vatiant from the JSON string
§Returns
Ok(())
if successfulErr
with error details if the conversion fails
let mut variant_builder = VariantBuilder::new();
let person_string = "{\"name\":\"Alice\", \"age\":30, ".to_string()
+ "\"email\":\"alice@example.com\", \"is_active\": true, \"score\": 95.7,"
+ "\"additional_info\": null}";
json_to_variant(&person_string, &mut variant_builder)?;
let (metadata, value) = variant_builder.finish();
let variant = parquet_variant::Variant::try_new(&metadata, &value)?;
let json_result = variant_to_json_string(&variant)?;
let json_value = variant_to_json_value(&variant)?;
let mut buffer = Vec::new();
variant_to_json(&mut buffer, &variant)?;
let buffer_result = String::from_utf8(buffer)?;
assert_eq!(json_result, "{\"additional_info\":null,\"age\":30,".to_string() +
"\"email\":\"alice@example.com\",\"is_active\":true,\"name\":\"Alice\",\"score\":95.7}");
assert_eq!(json_result, buffer_result);
assert_eq!(json_result, serde_json::to_string(&json_value)?);