- From: Poul-Henning Kamp <phk@phk.freebsd.dk>
- Date: Fri, 14 Apr 2023 07:53:09 +0000
- To: Mark Nottingham <mnot@mnot.net>
- cc: HTTP Working Group <ietf-http-wg@w3.org>
--------
Mark Nottingham writes:
> SF's data structures are somewhat weird, because of how HTTP
> fields work. It might be useful to suggest (not mandate) a mapping
> to JSON data structures, e.g., in an appendix.
Probably a good idea.
> We talked about what the right mapping should be in the 2022 HTTP
> Workshop, and this was what we ended up with on the whiteboard:
>
> ~~~
> {
> "@type": "string",
> "@val": "foo",
> "a": 1,
> "b": 2
> }
> ~~~
I am trying to figure out how the sf-header your example started from.
Are 'a' and 'b' parameters ?
Bla: "foo";a=1;b=2
If so, I would have expected:
{
"@type": "string",
"@val": "foo",
"a": {
"@type": "number",
"@val": 1
},
"b": {
"@type": "number",
"@val": 2
}
}
or maybe ?
{
"@type": "string",
"@val": "foo",
"@param": {
"a": {
"@type": "integer",
"@val": 1
},
"b": {
"@type": "integer",
"@val": 2
}
}
}
(In which case we could drop the '@' ?)
I guess sf-binary would look something like ?
{
"@type": "binary",
"@val": "cHJldGVuZCB0aGlzIGlzIGJpbmFyeSBjb250ZW50Lg=="
}
Working through:
Example-List: ("foo"; a=1;b=2);lvl=5, ("bar" "baz");lvl=1
I get:
{
"@type": "list",
"@val": [
{
"@type": "inner-list",
"@val": [
{
"@type": "string",
"@val": "foo"
"@param": {
"a": {
"@type": "integer"
"@val": 1
},
"b": {
"@type": "integer"
"@val": 2
},
}
},
],
"@param": {
"lvl": {
"@type": "integer"
"@val": 5
}
}
},
{
"@type": "inner-list",
"@val": [
{
"@type": "string",
"@val": "bar"
},
{
"@type": "string",
"@val": "baz"
},
],
"@param": {
"lvl": {
"@type": "integer"
"@val": 1
}
}
}
]
}
Something like that ?
--
Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
phk@FreeBSD.ORG | TCP/IP since RFC 956
FreeBSD committer | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.
Received on Friday, 14 April 2023 07:53:15 UTC