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…”

  • Rednax@lemmy.world
    link
    fedilink
    arrow-up
    12
    arrow-down
    3
    ·
    5 months ago

    The worst thing is: you can’t even put an int in a json file. Only doubles. For most people that is fine, since a double can function as a 32 bit int. But not when you are using 64 bit identifiers or timestamps.

    • 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
        ·
        4 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
          ·
          4 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
            ·
            4 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.