diff --git a/crates/jacquard-common/src/types/value.rs b/crates/jacquard-common/src/types/value.rs index 0a76e20..2023dce 100644 --- a/crates/jacquard-common/src/types/value.rs +++ b/crates/jacquard-common/src/types/value.rs @@ -131,8 +131,12 @@ impl<'s> Object<'s> { } } DataModelType::CidLink => { - if let Some(value) = value.as_str() { - map.insert(key.to_smolstr(), Data::CidLink(Cid::Str(value.into()))); + if let Some(value) = value.as_object() { + if let Some(value) = value.get("$link").and_then(|v| v.as_str()) { + map.insert(key.to_smolstr(), Data::CidLink(Cid::Str(value.into()))); + } else { + map.insert(key.to_smolstr(), Object::from_json(value)); + } } else { map.insert(key.to_smolstr(), Data::from_json(value)); }