You can see an example of proper JSON parsing (just one way to do it but a good way) here:
Many thanks @tatiang
I highly appreciate your praise to my work.
Thank you for all the help! I’m going to work on it and I’ll show you what I come up with in a couple of hours.
Can someone please help me fix these errors, I need to finish this app today?
You are using a variable
carb and you have assigned it the object of the API response.
Then you try to compare this object with simple numbers. This will never yield true.
The other issue, you need to keep in mind that
else if condition evaluation is progressive which means it will check the first condition and if it happens to be true then no more conditions will be checked or tested. However, if the first condition comes up false, the next
else if will be tested and again the next condition will only be tested when the current condition is false.
The way you listed the condition in the code does not follow this role and therefore will not work properly.
What should I replace for the object of the api response instead of the variable carbs?
Also is this how I should keep my if/else blocks?
Let’s do what they call it dry run.
Assume the number you have from your API is 19.
What will happen with the blocks?
The first block is testing if the number is greater than or equal 12.5 so this will be true. And the label
Very health will have the text “Very healthy” showing on it.
Let’s see the next condition, is the number (19) greater than or equal18, the answer is yes and the label
Somewhat healthy will show the text “Somewhat healthy” on it.
Let’s proceed to the third block, is the number less than or equal 19, the answer is no and the label will not get updated.
Now the app is confusing the user. It has two labels with text in them. One saying “Very healthy” and the other saying “Somewhat healthy”.
This is not good.
I changed the if/else statements, but it still shows an error with the blocks. Are the get properties parsed wrong? Or is there another error?
You’ve written nutriments instead of nutrients.
They called it “nutriments”.
Sorry, my bad. Didn’t notice.
That’s okay! Thanks for helping!
So basically, the food is healthy if the carbs are less than 12.5?
Yes, it is
OK, then you’ve done it the other way around. You’ve done
if app variable carbs ≥ 12.5
but it’s actually
if app variable carbs ≤ 12.5
Also, the food is unhealthy if the carbs are more than 19, right?
If so, then you need to change the symbols like in my last post.
I changed the signs for both of them but it still says that there is an error with the blocks.
Can you share a screenshot of that error?