1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use std::sync::Arc;
use serde_json::Value;
use crate::array::Array;
use crate::datatypes::DataType;
use crate::error::ArrowError;
use super::super::super::json::read::_deserialize;
pub fn deserialize(rows: &[String], data_type: DataType) -> Result<Arc<dyn Array>, ArrowError> {
let rows = rows
.iter()
.map(|row| serde_json::from_str(row.as_ref()).map_err(ArrowError::from))
.collect::<Result<Vec<Value>, ArrowError>>()?;
Ok(_deserialize(&rows, data_type))
}