Quotes shouldn't be removed. BigNum is a decimal derivative and decimals in 
JSON have quotes.

This is needed to distinguish values like "2.1" vs "2.100", etc. which are 
decimal(2,1) vs decimal(4,3) datatypes.

-----Original Message-----
From: Paul Taylor <ptaylor.apa...@gmail.com> 
Sent: Wednesday, October 28, 2020 8:05 AM
To: dev@arrow.apache.org
Subject: Re: [JS] BigNum toJSON returns a string with quotations in it

External Email: Use caution with links and attachments


Yes, the quotes should be removed.

I'd recommend using the binary IPC format to send data to the browser though.

Deserializing to JSON is expensive, loses the benefits of features like 
dictionary encoding, and reconstructing types on the receiving end is 
error-prone (as illustrated here).

Paul

> On Oct 28, 2020, at 9:31 AM, Sam Peka <sam.i.p...@gmail.com> wrote:
>
> Hi there,
>
> The toJSON method of BigNum is currently returning a string with quotation 
> marks around it: 
> https://urldefense.com/v3/__https://github.com/apache/arrow/blob/fbb781bcdd15d54c52c71881c5c53d0c68069be6/js/src/util/bn.ts*L39__;Iw!!KSjYCgUGsB4!JQvbemEyMOKe9IdEl0I_dvM8_AKplf58CKhSvIyb0d5mHv7dJta2TJGQeGgUBlZ4tFg$
>
> JSON.stringify will include those quotation marks in the output JSON. Here’s 
> an example illustrating the issue:
>
> const a = BN.new([12])
> console.log(JSON.stringify({ a }))
>> {"a":"\"12\""}
>
> Our usecase is to take some arrow data and return it to a web client as json 
> – but because the format is bad we’re having to work around this by 
> converting all BigNums to strings before serilaizing the response.
>
> Is BigNum.toJSON intended to work with JSON.stringify? Happy to open a PR if 
> so.
>
> Best,
> Sam


This message may contain information that is confidential or privileged. If you 
are not the intended recipient, please advise the sender immediately and delete 
this message. See 
http://www.blackrock.com/corporate/compliance/email-disclaimers for further 
information.  Please refer to 
http://www.blackrock.com/corporate/compliance/privacy-policy for more 
information about BlackRock’s Privacy Policy.


For a list of BlackRock's office addresses worldwide, see 
http://www.blackrock.com/corporate/about-us/contacts-locations.

© 2020 BlackRock, Inc. All rights reserved.

Reply via email to