Option 2 is also my favorite.
On 3 Feb 2016 8:59 p.m., Erik Bruchez <erik@bruchez.org> wrote:
All,
Say we receive the following JSON:
{ "name": "Mark", "age": 21 }
which converts to:
<json type="object">
<name>Mark</name>
<age type="number">21</age>
</json>
We have an input field bound to:
instance()/age
Then the user blanks the field, which, say, is not required. So we have:
<json type="object">
<name>Mark</name>
<age type="number"></age>
</json>
Now when we try to serialize back the XML to JSON, what should happen?
I see 3 options:
1. Generate an empty string for "age".
2. Generate `null` "age".
3. Raise an error.
I don't like #1 because that changes types in an unexpected way.
I don't like #3 because it seems like we should have the possibility
to handle optional values.
My preference would go to #2:
{ "name": "Mark", "age": null }
The rule would be: "if we have a `number` or `boolean` element whose
string value cannot be converted back to a number or a boolean JSON
value, either because it is empty or blank or because it doesn't match
the lexical value of a JSON number of boolean, then generate a
`null`".
Feedback welcome.
-Erik