typestar

JSON sin tipos con Value en Rust

Cuando la forma es desconocida, Value y la macro json! la manejan dinámicamente.

use serde_json::{json, Value};

fn main() -> Result<(), serde_json::Error> {
    let payload = json!({
        "lang": "sql",
        "tours": ["basics", "joins"],
        "steps": 45
    });

    println!("{}", payload["lang"].as_str().unwrap_or("?"));
    println!("{:?}", payload["steps"].as_u64());
    println!("{}", payload["missing"].is_null());

    let parsed: Value = serde_json::from_str(r#"{"ok":true}"#)?;
    println!("{:?}", parsed["ok"].as_bool());
    Ok(())
}

Cómo funciona

  1. json! construye un Value con sintaxis a lo JSON.
  2. Indexar devuelve Value::Null en vez de hacer panic.
  3. as_str y as_u64 intentan una lectura tipada.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
17
Caracteres a escribir
421
Tokens
160
Ritmo de tres estrellas
100 tpm

Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 96 segundos.

Escribe este fragmento

Paso 2 de 3 en Derivar; paso 2 de 11 en Serde y JSON.

← Anterior Siguiente →