Meme transcription:

Panel 1: Bilbo Baggins ponders, “After all… why should I care about the difference between int and String?

Panel 2: Bilbo Baggins is revealed to be an API developer. He continues, “JSON is always String, anyways…”

  • Ethan@programming.dev
    link
    fedilink
    English
    arrow-up
    34
    ·
    5 months ago

    That’s an artifact of JavaScript, not JSON. The JSON spec states that numbers are a sequence of digits with up to one decimal point. Implementations are not obligated to decode numbers as floating point. Go will happily decode into a 64-bit int, or into an arbitrary precision number.

    • Aux@lemmy.world
      link
      fedilink
      arrow-up
      1
      arrow-down
      4
      ·
      5 months ago

      What that means is that you cannot rely on numbers in JSON. Just use strings.

      • JackbyDev@programming.dev
        link
        fedilink
        English
        arrow-up
        1
        ·
        5 months ago

        Unless you’re dealing with some insanely flexible schema, you should be able to know what kind of number (int, double, and so on) a field should contain when deserializing a number field in JSON. Using a string does not provide any benefits here unless there’s some big in your deserialzation process.

        • Aux@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          5 months ago

          What’s the point of your schema if the receiving end is JavaScript, for example? You can convert a string to BigNumber, but you’ll get wrong data if you’re sending a number.