On Wednesday, 21 July 2021 at 03:00:51 UTC, Mathias LANG wrote:
TL;DR: If you want to use loosely typed data in a strongly typed language, you need to come up with a common type. That common type is usually either a discriminated union (which a JSON object is, essentially) or something that is domain-specific.

Hope this helps. I had a quick look at asdf and couldn't see a support for tagged union, so you would probably need to provide your data structure with a `deserializeFromAsdf` method. If you want to do so, look into providing a wrapper to `SumType`, e.g.:

```
struct MyUnion (T...) {
    SumType!T data;
    alias data this;
SerdeException deserializeFromAsdf(Asdf data) { /* Fill in the SumType */ }
```

But I would recommend just using the JSON object if you can.

Thank you! From your answer, I realized that in fact, I would rather do the parsing of these arguments myself.

Before using asdf, I tried to do the same with the standard std.json. The problem is the same there. I agree that this is logical for D.

I was also interested in SumType, I will try to do something with it for experience.

Reply via email to