# Http outcall response JSON processing in Motoko

**URL:** <https://forum.dfinity.org/t/http-outcall-response-json-processing-in-motoko/15977>\
**Category:** Language Support\
**Tags:** Motoko, Education\
**Created:** [October 19, 2022, 9:47am UTC](https://forum.dfinity.org/t/http-outcall-response-json-processing-in-motoko/15977 "2022-10-19T09:47:06Z")\
**Posts on this page:** 1\
**Showing post:** 7

<div class="post-metadata">

**Author:** ![paulyoung](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/paulyoung/32/5251_2.png) [@paulyoung](https://forum.dfinity.org/u/paulyoung)\
**Post date:** [December 15, 2022, 8:06am UTC](https://forum.dfinity.org/t/http-outcall-response-json-processing-in-motoko/15977/7 "2022-12-15T08:06:49Z")

</div>

Cross-posting visibility, and because I think it’s such an elegant solution:

> [@How can I convert a Text like "{"bitcoin":{"usd":18053.8}}" into an object or vector that I can use programatically?](https://forum.dfinity.org/t/how-can-i-convert-a-text-like-bitcoin-usd-18053-8-into-an-object-or-vector-that-i-can-use-programatically/17416/5):
>
> import serdeJson "mo:serde/JSON"; type User = { name: Text; id: Nat; }; let blob = serdeJson.fromText("{\"name\": \"bar\", \"id\": 112}"); let user : ?User = from\_candid(blob); assert user == ?{ name = "bar"; id = 112 };

> **[GitHub - NatLabs/serde: Serialization and Deserialization library for motoko](https://github.com/NatLabs/serde)**
>
> Serialization and Deserialization library for motoko - GitHub - NatLabs/serde: Serialization and Deserialization library for motoko

```auto
import serdeJson "mo:serde/JSON";
    
type User = {
    name: Text;
    id: Nat;
};

let blob = serdeJson.fromText("{\"name\": \"bar\", \"id\": 112}");
let user : ?User = from_candid(blob);

assert user == ?{ name = "bar"; id = 112 };

```

---

_[View the full topic](https://forum.dfinity.org/t/http-outcall-response-json-processing-in-motoko/15977)._
