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

The meme format is awesome, but JSON differentiates strings with ".

{ "key": 1337 } vs { "key": "1337" }.

You might be thinking yaml? (Though it supports ' and " for explicit string types, technically)

But integer vs float? Good luck.

The joke is that, regardless of how the type is declared in json, you are parsing a string. (your json blob is just a series of characters, not raw binary data)

Yes. And many people here doesn’t seem to get that.

I’m not a dev of any kind. I occasionally write some bash and awk scriots to automate some things and if I need some kind of plain text (non-binary) data format I prefer tsv over json.

So why do I still get this? Is it just that many json advocates want to make sure others know json does support other data types than plain string?

Once we had a “sr developer” join a project from a consulting group. The project wasn’t going well so me and another dev started helping with some tasks as well.

After a couple days of helping, trying to get his web application to work with data from an API he turns to us and says “oh, json is just a string.”

The other developer from our team stared at him for a few seconds, stood up, walked out of the room and told the project manager something along the lines of “if that guy ever comes back in the building I’ll quit”

So yeah, json is just a string… But if that’s the end of your knowledge you’re in for a bad day.

“if that guy ever comes back in the building I’ll quit”

You can’t just leave a story like that lol, did “sr dev” come back into the building? Did the other dev follow through on his threat? So many questions

Ha yeah “Sr dev” was never seen again, the team member stuck around for quite a few more years.

Semperverus
link
fedilink
English
22
edit-2
4M

JSON has types.

Many API developers may choose not to use them, but they are absolutely there.

You specify the type by including or excluding quotation marks, and then for the types without quotation marks, you either include or exclude a decimal point to specify float or integer, and for boolean you use characters (specifically true or false). Arrays are wrapped in [] and objects are wrapped in {}.

JSON data as a whole is passed as one giant string because the REST protocol demands it. But once it’s been pulled in and properly interpreted, there are absolutely types in the data.

Absolutely. Who doesn’t type JSON?

Semperverus
link
fedilink
English
1
edit-2
4M

I’m not sure if i’m missing a joke here, so:

In case you’re making a joke: The people who don’t type JSON are using controllers.

In case you’re asking a serious question: the people who don’t type JSON are the people in OP’s image. They are technically using types, but that type is literally always string. They don’t use integers, they don’t use booleans. This is functional but may not be the best choice, depending on what kinds of data their system is supposed to handle.

Would you mind elaborating a bit for someone who doesn’t do much coding? I’m guessing I’m one of the people you’re talking about.

The only coding I’ve done has been via json for raspberry pi, 3d printer, and homeassistant applications.

I know it’s a text base language, but how do it’s commands relate to integers? I’ve used boolean, I get that bit.

When passing or storing data in code you usually have to specify what type of data is it. An int is an integer, so numbers, there’s also boolean (true/false) and many others. There’s also string which is just characters of any kind (for the most part) which pretty much makes it a catch-all, since numbers can be a string along with letters and special characters.

But to use a number as a number after it’s been received as a string it has to be converted to an int, which means extra code, more effort, more failure points etc etc.

@meliaesc@lemmy.world
link
fedilink
5
edit-2
4M

We aren’t using json.atChar(17) to get values?

deleted by creator

Great post, but I have to “well, actually” you on this little thing:

the REST protocol demands it.

REST is not a protocol, and does not have to do anything with JSON.

(eg. How Did REST Come To Mean The Opposite of REST? by Carson Gross)

Create a post

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

  • Posts must be relevant to programming, programmers, or computer science.
  • No NSFW content.
  • Jokes must be in good taste. No hate speech, bigotry, etc.
  • 1 user online
  • 2 users / day
  • 9 users / week
  • 85 users / month
  • 535 users / 6 months
  • 1 subscriber
  • 901 Posts
  • 3.12K Comments
  • Modlog