pub fn parse_value(
value: &Value,
refs: Option<&mut HashMap<usize, Value>>,
) -> ValueExpand description
Parses a value returned by Playwright’s evaluateExpression method.
This function deserializes values from Playwright’s protocol format back into standard Rust/JSON values. It handles the same types as serialization:
{"v": "null"}→Value::Null{"v": "undefined"}→Value::Null{"b": true}→Value::Bool(true){"n": 42}→Value::Number(42){"s": "hello"}→Value::String("hello"){"d": "2025-12-25T00:00:00.000Z"}→Value::String("2025-12-25T00:00:00.000Z"){"bi": "12345678901234567890"}→Value::String("12345678901234567890"){"u": "https://example.com"}→Value::String("https://example.com"){"e": {...}}→Value::Objectwith error details{"ta": {...}}→Value::Arrayof decoded values{"a": [...]}→Value::Array([...]){"o": [...]}→Value::Object({...})- Special values:
"Infinity","-Infinity","NaN","-0"
§Arguments
value- The wrapped value from Playwrightrefs- Optional map for tracking circular references
§Returns
The parsed value as a serde_json::Value
§Examples
use playwright_rs::protocol::parse_value;
use serde_json::json;
// Parse a string
let result = parse_value(&json!({"s": "hello"}), None);
assert_eq!(result, json!("hello"));
// Parse a number
let result = parse_value(&json!({"n": 42}), None);
assert_eq!(result, json!(42));
// Parse a boolean
let result = parse_value(&json!({"b": true}), None);
assert_eq!(result, json!(true));