1use serde_json::Value;
2
3pub fn text2json(data_string: &str) -> Result<Value, serde_json::Error> {
13 serde_json::from_str(data_string)
14}
15
16#[cfg(test)]
17mod tests {
18 use super::*;
19 use serde_json::json;
20
21 #[test]
22 fn test_text2json_valid_input() {
23 let input = r#"{"hello": 123}"#;
24 let expected = json!({"hello": 123});
25 let result = text2json(input).unwrap();
26 assert_eq!(result, expected, "JSON did not match expected value");
27 }
28
29 #[test]
30 fn test_text2json_invalid_syntax() {
31 let input = r#"{ invalid json }"#;
32 let err = text2json(input).unwrap_err();
33 assert!(err.is_syntax(), "Expected a syntax error");
34 }
35
36 #[test]
37 fn test_text2json_data_error() {
38 let input = r#"{"num": "abc"}"#;
39 let parsed: Result<serde_json::Value, _> = text2json(input);
40 let value = parsed.unwrap();
41
42 assert_eq!(value["num"], "abc");
43 }
44}