Skip to main content

parse_value

Function parse_value 

Source
pub fn parse_value(
    value: &Value,
    refs: Option<&mut HashMap<usize, Value>>,
) -> Value
Expand 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::Object with error details
  • {"ta": {...}}Value::Array of decoded values
  • {"a": [...]}Value::Array([...])
  • {"o": [...]}Value::Object({...})
  • Special values: "Infinity", "-Infinity", "NaN", "-0"

§Arguments

  • value - The wrapped value from Playwright
  • refs - 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));