Skip to content

Commit d8f43f2

Browse files
committed
[FIX] implement fromiterator
1 parent de7c979 commit d8f43f2

File tree

1 file changed

+8
-16
lines changed

1 file changed

+8
-16
lines changed

parquet-variant/src/to_json.rs

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -415,25 +415,17 @@ pub fn variant_to_json_value(variant: &Variant) -> Result<Value, ArrowError> {
415415
Variant::String(s) => Ok(Value::String(s.to_string())),
416416
Variant::ShortString(s) => Ok(Value::String(s.to_string())),
417417
Variant::Object(obj) => {
418-
let mut map = serde_json::Map::new();
419-
420-
for (key, value) in obj.iter() {
421-
let json_value = variant_to_json_value(&value)?;
422-
map.insert(key.to_string(), json_value);
423-
}
424-
418+
let map = obj
419+
.iter()
420+
.map(|(k, v)| variant_to_json_value(&v).map(|json_val| (k.to_string(), json_val)))
421+
.collect::<Result<_, _>>()?;
425422
Ok(Value::Object(map))
426423
}
427424
Variant::List(arr) => {
428-
let mut vec = Vec::new();
429-
let len = arr.len();
430-
431-
for i in 0..len {
432-
let element = arr.get(i)?;
433-
let json_value = variant_to_json_value(&element)?;
434-
vec.push(json_value);
435-
}
436-
425+
let vec = arr
426+
.iter()
427+
.map(|element| variant_to_json_value(&element))
428+
.collect::<Result<_, _>>()?;
437429
Ok(Value::Array(vec))
438430
}
439431
}

0 commit comments

Comments
 (0)