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.