pub trait ToJsonNode {
    // Required method
    fn to_json_node(&self) -> JsonNode;
}
Expand description

A trait for converting a type into a JsonNode.

Required Methods§

source

fn to_json_node(&self) -> JsonNode

Converts the type into a JsonNode.

Implementing the Trait
use json_node::{JsonNode, JsonValue, JsonPropertyMap, ToJsonNode};
     
// Define some struct you want to convert into a `JsonNode`.
struct Person {
    name: String,
    age: i64,
}
 
// Implement the trait for your struct.
impl ToJsonNode for Person {
    fn to_json_node(&self) -> JsonNode {
        // Create a `JsonNode::Object` with the properties of your struct.
        JsonNode::Object(JsonPropertyMap::from([
            // The key is the name of the property. The value is the value of the property.
            ("name".to_owned(), JsonNode::Value(JsonValue::String(self.name.clone()))),
            // You can convert any type that implements `ToJsonNode` into a `JsonNode`.
            ("age".to_owned(), self.age.to_json_node()),
        ]))
    }
}
 
let person = Person {
    name: "John Doe".to_owned(),
    age: 42,
};
 
let person_node = person.to_json_node();
let person_node_json = person_node.to_json_string();
assert_eq!(
    person_node_json,
    r#"{"name":"John Doe","age":42}"#
);

Implementations on Foreign Types§

source§

impl<E: Error> ToJsonNode for Result<&str, E>

source§

impl<T: ToJsonNode> ToJsonNode for BTreeSet<T>

source§

impl<E: Error> ToJsonNode for Result<i32, E>

source§

impl<V: ToJsonNode> ToJsonNode for HashMap<String, V>

source§

impl<E: Error> ToJsonNode for Result<String, E>

source§

impl ToJsonNode for i64

source§

impl ToJsonNode for f64

source§

impl<V: ToJsonNode> ToJsonNode for BTreeMap<String, V>

source§

impl<E: Error> ToJsonNode for Result<i64, E>

source§

impl ToJsonNode for bool

source§

impl<T: ToJsonNode> ToJsonNode for HashSet<T>

source§

impl<T: ToJsonNode> ToJsonNode for LinkedList<(String, T)>

source§

impl<T: ToJsonNode> ToJsonNode for BinaryHeap<T>

source§

impl ToJsonNode for f32

source§

impl<E: Error> ToJsonNode for Result<bool, E>

source§

impl ToJsonNode for Option<u32>

source§

impl<T: ToJsonNode> ToJsonNode for VecDeque<(String, T)>

source§

impl<T: ToJsonNode> ToJsonNode for Vec<T>

source§

impl<T: ToJsonNode> ToJsonNode for BinaryHeap<(String, T)>

source§

impl ToJsonNode for Option<f64>

source§

impl ToJsonNode for i32

source§

impl ToJsonNode for String

source§

impl<T: ToJsonNode> ToJsonNode for [T]

source§

impl<T: ToJsonNode> ToJsonNode for VecDeque<T>

source§

impl ToJsonNode for &str

source§

impl ToJsonNode for Option<String>

source§

impl<T: ToJsonNode> ToJsonNode for LinkedList<T>

source§

impl ToJsonNode for Option<f32>

source§

impl ToJsonNode for Option<bool>

source§

impl<T: ToJsonNode> ToJsonNode for BTreeSet<(String, T)>

source§

impl ToJsonNode for Option<i64>

source§

impl ToJsonNode for u32

source§

impl ToJsonNode for Option<i32>

source§

impl<E: Error> ToJsonNode for Result<f32, E>

source§

impl<T: ToJsonNode> ToJsonNode for Vec<(String, T)>

source§

impl<T: ToJsonNode, const COUNT: usize> ToJsonNode for [T; COUNT]

source§

impl<E: Error> ToJsonNode for Result<u32, E>

source§

impl<E: Error> ToJsonNode for Result<f64, E>

source§

impl ToJsonNode for Option<&str>

source§

impl<T: ToJsonNode> ToJsonNode for HashSet<(String, T)>

Implementors§