Stephane Ducasse-3 wrote
> On Tue, Sep 26, 2017 at 1:15 PM, Sven Van Caekenberghe <

> sven@

> > wrote:
>> Stef,
>>
>>> On 24 Sep 2017, at 12:26, Stephane Ducasse <

> stepharo.self@

> > wrote:
>>>
>>> Hi Sven
>>>
>>> For Moose we are wondering if we can use STON to save/load models
>>> instead of MSE.
>>> - I'm sure we can :)
>>>
>>> Now my little friends would like to kill two or three birds with the
>>> same stone :)
>>>
>>> Would it be possible to use STON to handle cycles but to generate JSON
>>> compatible
>>> in the following sense:
>>>
>>> Class {
>>>   "id": 123,
>>>   "name" : "A"
>>> }
>>>
>>> =>
>>>
>>> {
>>>   "id": 123,
>>>   "type" : "Class",
>>>   "name" : "A"
>>> }
>>>
>>> It means that we could be able to output an extra field and when we
>>> read that the materialiser
>>> would create an entity based on the type field for example.
>>>
>>> Am I thinking something totally wrong?
>>
>> I am not sure how to answer.
>>
>> It should be possible to use STON as it is, no ?
> 
> No because they want to have JSON syntax
> ie.
> 
>  {
>    "id": 123,
>    "type" : "Class",
>    "name" : "A"
>  }
> 
> and not
> 
> Class {
>    "id": 123,
>    "name" : "A"
> }
> 
> 
>> JSON is different, as you know. NeoJSON was not designed to work with
>> such dynamic types, its optional mapping mechanism works with a static
>> type map.
>> STON is a format with an implementation, it is not designed as a general
>> purpose object visitor.
> 
> To me STON is nearly what we need
>  - handling cycles
>  - nearly JSON
> 
> But else we will have to redo our own way to handle cycles again so
> this is why if we could avoid it would be good.
> 
>>
>> Sven
>>
>>> Stef
>>

I would ask myself a second, and quite likely a third, time what JSON is
supposed to give you.
"It's JSON! Anyone can parse it!", is about as useful as an XML file without
a defined schema.
In most cases (static/non-reflective languages excluded) it'll be simpler to
just port STON, compared to building an arbitrary object materializer in
whatever language you intend as a target on top of a stock JSON parser. 
Plus, the syntax of the text files will be nicer :)
(And, if you're serious about cross-language object interchange formats,
there's really no way around the static type map approach, even if the
on-disk format happens to be JSON)

Cheers,
Henry



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html

Reply via email to