Thanks for the clarification, Anders.  

If you are working from Nashorn, the simplest way to enforce JS formatting is 
to coerce the Java number (whatever type it is) to a JS number, e.g. using 
unary + operator. 

If you need this in Java core libs, the place to discuss this would  be the 
core-libs-dev mailing list rather than nashorn-dev, but I think the chances to 
get such specialised functionality to core libs would be very slim.

Hannes

> Am 29.01.2018 um 15:46 schrieb Anders Rundgren 
> <anders.rundgren....@gmail.com>:
> 
> On 2018-01-29 15:49, Sundararajan Athijegannathan wrote:
>> Just to be clear. so.. do you want a toString (static method?) variant
>> in java.lang.Double class as per this specification?
> 
> I don't think this is a major issue because all fundamental JSON types anyway 
> needs be dealt with separately or through a super interface.
> The existing Nashorn method (after upgrade to match ES better) moved to the 
> Java layer would probably be just fine.
> 
> Anders
> 
>> -Sundar
>> On 29/01/18, 7:45 PM, Anders Rundgren wrote:
>>> On 2018-01-29 14:52, Hannes Wallnöfer wrote:
>>>> Hi Anders,
>>>> 
>>>> I think I lack the context required to understand what you’re asking
>>>> for. Can you explain how transmitting numbers/doubles in JSON should
>>>> work and how the static method you’re asking for would enable this?
>>> 
>>> Sure.  Signatures depend on that data appears identical on both sides
>>> (sender + receiver).
>>> If one side outputs the integer 10 as 10.0 (which is OK JSON-wise),
>>> the signature will break in an EcmaScript environment where it must be
>>> 10 and nothing else.
>>> JSON tools would call the proposed static method rather than building
>>> their own number serializer.
>>> 
>>> Initially I thought number serialization was a simple problem but that
>>> was entirely wrong :-)
>>> Fortunately the ECMA folks have the expertize needed and their
>>> solution is already supported in billions of devices.
>>> Nashorn almost cuts it but only for JavaScript, not Java.
>>> 
>>>> Also, is there a document somewhere describing the IETF
>>>> standardization work you’re talking about?
>>> 
>>> You will have to wait to next week (when it becomes public), but in
>>> the meantime you can take a look at the core "input specifications":
>>> https://cyberphone.github.io/doc/security/jose-jcs.html
>>> https://cyberphone.github.io/doc/security/jose-jef.html
>>> 
>>> Thanx,
>>> Anders
>>> 
>>>> 
>>>> Thanks,
>>>> Hannes
>>>> 
>>>>> Am 28.01.2018 um 10:48 schrieb Anders Rundgren
>>>>> <anders.rundgren....@gmail.com>:
>>>>> 
>>>>> The JSON "clear text" signature initiative seems to (finally) be
>>>>> headed for IETF standardization.  The plan is having a BOF session
>>>>> at the next IETF in London.
>>>>> 
>>>>> This scheme builds on EcmaScript JSON processing rules for data
>>>>> normalization which only rely on JSON.parse() and JSON.stringify().
>>>>> 
>>>>> A thorny issue for implementers is though serializing the JSON
>>>>> "Number" type.
>>>>> 
>>>>> An with Node.js, Chrome, Firefox, Safari (unfortunately not entirely
>>>>> compatible...) solution is currently available in "Nashorn":
>>>>> http://hg.openjdk.java.net/jdk8/jdk8/nashorn/file/096dc407d310/src/jdk/nashorn/internal/objects/NativeNumber.java
>>>>> 
>>>>> 
>>>>> It would be great if such support could for example be included as a
>>>>> static method in java.lang.Double, making Java and
>>>>> EcmaScript/JavaScript 100% interoperable with respect to this
>>>>> feature, the rest is actually close to trivial.
>>>>> 
>>>>> thanx,
>>>>> Anders
>>>>> https://github.com/OAI/OpenAPI-Specification/issues/1464#issue-291622705
>>>>> 
>>>> 
>>> 
> 

Reply via email to