Parsing JSON in the background

16 minutes
Share the link to this page
Copied
  Completed
You need to have access to the item to view this lesson.
One-time Fee
$99.99
List Price:  $139.99
You save:  $40
€96.21
List Price:  €134.70
You save:  €38.49
£79.93
List Price:  £111.90
You save:  £31.97
CA$143.79
List Price:  CA$201.32
You save:  CA$57.52
A$160.48
List Price:  A$224.69
You save:  A$64.20
S$135.83
List Price:  S$190.17
You save:  S$54.33
HK$777.07
List Price:  HK$1,087.93
You save:  HK$310.86
CHF 89.45
List Price:  CHF 125.24
You save:  CHF 35.78
NOK kr1,141.95
List Price:  NOK kr1,598.78
You save:  NOK kr456.82
DKK kr717.64
List Price:  DKK kr1,004.72
You save:  DKK kr287.08
NZ$177.52
List Price:  NZ$248.53
You save:  NZ$71.01
د.إ367.25
List Price:  د.إ514.17
You save:  د.إ146.91
৳11,994.74
List Price:  ৳16,793.12
You save:  ৳4,798.37
₹8,496.63
List Price:  ₹11,895.62
You save:  ₹3,398.99
RM450.75
List Price:  RM631.07
You save:  RM180.32
₦155,628.43
List Price:  ₦217,886.03
You save:  ₦62,257.60
₨27,934.96
List Price:  ₨39,110.06
You save:  ₨11,175.10
฿3,444.45
List Price:  ฿4,822.37
You save:  ฿1,377.92
₺3,518.54
List Price:  ₺4,926.10
You save:  ₺1,407.55
B$617.53
List Price:  B$864.57
You save:  B$247.04
R1,837.80
List Price:  R2,572.99
You save:  R735.19
Лв188.31
List Price:  Лв263.64
You save:  Лв75.33
₩144,872.25
List Price:  ₩202,826.95
You save:  ₩57,954.69
₪364.89
List Price:  ₪510.86
You save:  ₪145.97
₱5,883.01
List Price:  ₱8,236.45
You save:  ₱2,353.44
¥15,672.80
List Price:  ¥21,942.55
You save:  ¥6,269.75
MX$2,028.91
List Price:  MX$2,840.56
You save:  MX$811.64
QR366.34
List Price:  QR512.89
You save:  QR146.55
P1,382.59
List Price:  P1,935.69
You save:  P553.09
KSh12,923.70
List Price:  KSh18,093.70
You save:  KSh5,170
E£5,091.27
List Price:  E£7,127.98
You save:  E£2,036.71
ብር12,764.56
List Price:  ብር17,870.89
You save:  ብር5,106.33
Kz91,790.82
List Price:  Kz128,510.82
You save:  Kz36,720
CLP$99,155.08
List Price:  CLP$138,821.08
You save:  CLP$39,666
CN¥729.81
List Price:  CN¥1,021.77
You save:  CN¥291.95
RD$6,104.52
List Price:  RD$8,546.58
You save:  RD$2,442.05
DA13,454.60
List Price:  DA18,836.98
You save:  DA5,382.37
FJ$232.11
List Price:  FJ$324.96
You save:  FJ$92.85
Q773.21
List Price:  Q1,082.52
You save:  Q309.31
GY$21,000.46
List Price:  GY$29,401.48
You save:  GY$8,401.02
ISK kr13,903.60
List Price:  ISK kr19,465.60
You save:  ISK kr5,562
DH1,007.40
List Price:  DH1,410.40
You save:  DH403
L1,841.78
List Price:  L2,578.57
You save:  L736.78
ден5,922.50
List Price:  ден8,291.74
You save:  ден2,369.23
MOP$803.42
List Price:  MOP$1,124.82
You save:  MOP$321.40
N$1,834.70
List Price:  N$2,568.66
You save:  N$733.95
C$3,694.32
List Price:  C$5,172.20
You save:  C$1,477.87
रु13,665.58
List Price:  रु19,132.35
You save:  रु5,466.77
S/374.71
List Price:  S/524.60
You save:  S/149.89
K406.86
List Price:  K569.63
You save:  K162.76
SAR375.72
List Price:  SAR526.02
You save:  SAR150.30
ZK2,777.96
List Price:  ZK3,889.25
You save:  ZK1,111.29
L478.81
List Price:  L670.35
You save:  L191.54
Kč2,418.25
List Price:  Kč3,385.65
You save:  Kč967.40
Ft39,800.47
List Price:  Ft55,722.25
You save:  Ft15,921.78
SEK kr1,103.66
List Price:  SEK kr1,545.17
You save:  SEK kr441.50
ARS$102,190.76
List Price:  ARS$143,071.15
You save:  ARS$40,880.39
Bs693.61
List Price:  Bs971.08
You save:  Bs277.47
COP$437,799.12
List Price:  COP$612,936.28
You save:  COP$175,137.16
₡50,480.33
List Price:  ₡70,674.48
You save:  ₡20,194.15
L2,548.03
List Price:  L3,567.35
You save:  L1,019.31
₲784,126.06
List Price:  ₲1,097,807.85
You save:  ₲313,681.79
$U4,460.41
List Price:  $U6,244.75
You save:  $U1,784.34
zł409.96
List Price:  zł573.96
You save:  zł164
Already have an account? Log In

Transcript

Hello, in this video, I am going to show you how to pass JSON in the background said of you know, by default it does in a single thread dot application do, but in many cases, no, this model simplifies coding and is fast enough, it does not result in poor performance and structure. And basically, we want to be able to, you know, dude in the background, therefore, we can notice and load up the data really, really fast, you know, to avoid us or you know, for jumping us they get one thing all loading. So first thing you want to do is add the HTTP package, go to the pub spec dot yamo file, and in the dependencies you want to say HTTP and the latest version which you can locate dot Lang Nope, no, that's not what I want. That's not World War Two. So that is not yet pub dartlang.org packages, type in HTTP.

Go to this right here, copy this. Then what you want to do is here to package gets, packages upgrade and attack now go to the main dot foil. Do talk right here. First of all we want to basically import some classes. We want to import package the head to TP dot. And this is going to be as HTTP dot dot HTTP Before we can, you know, refer to anything from here, just HTTP.

And we're gonna say import. And we're going to import dot a synchronous class, and we are going to import dot. Okay, so what we want to do now is create a couple of methods, one for fetching the photos, one for pausing the photos. So the fetch if you watched the video on how to fetch data from the internet, and a lot of this will feel right at home in our future is gonna be missed. All so toes, this is basically the photo is going to be a class. So let's get rid of one of these.

If given an array at the mall, we don't have that class going to creatively fetch photos. You're accepted The parameter HTTP client is going to be client facing. And inside of here we're gonna have a response. And you can put, you know, authorization header that was separate video can be a way to get via HTTPS, colon, forward slash JSON placeholder dot type is calm forward slash photos. And we just need to. And basically we're going to use the built in compute function to essentially pass the photos in a separate, isolate.

And if you want to know more Information about this on the provide the official documentation so you can check all of that. So compute costs. Photos, that's the method that we are going to be creating next response body will give an error for compute. I'm missing a import from imports know the possible not for slash foundation jar. There we go. This error will disappear when you create the method.

And if at all just give them credit class. So let's get rid of this error now. We are going to put next return list and a list of photos. Pause photos spring response body Final news on modified JSON, decode the response body map. It's going to be a key pair value, key value pair, a string for the key and dynamic for the datatype. value.

Cost dot map is gonna return a JSON array of grades. Get photo dot from JSON again, no we don't have the photo class yet, and we don't have this method. So, this method will produce an error which will disappear shortly to just have a look make sure okay this should be paused, this will disappear and create the class that will this as well this Okay, so we are now ready to create the photo classes. So, obviously, depending on the data that you are getting back, you can modify this accordingly. I'm using the JSON placeholder website where we can just you know, get some basic photos. But you can use your own URL working on the album iD iD.

This is given an error because they have not been initialized. We're going to be implementing the constructor very formal title. Finally final URL final Next we are going to create the constructor which will initialize these values. album ID is the ID, title. URL is for now URL Data Factory can be photo dot from JSON which is this right here. So we are moving the error now and we are slowly getting this all come together now.

And inside of here we are instance of this photo class is going to be album. I do It's going to be JSON data for JSON. And this is going to be an integer. Return the ID this JSON. Well, the title is going to be a JSON file, type for JSON URL. See, because I have not done a capital F, find the form now URL is going to be JSON.

We are almost there. I know. I know we've been doing quite a bit of code in this video compared to many Because we are getting from now URL, string. Now all of those should be disappeared. Now at the moment the form will naturally do anything. So if we go down to our application, if we scroll down, we have our class here.

First of all we want to have photos, photos, is going to be equal to just need to initialize it. So for the initialization Sorry, part of the Yeah. So photos Nope, nope, we don't want that there needs to create one more class. Sorry, my bad, my bad we need to create one more class and this is going to be a class of photos less Photos, photo list. stateless widget photo, photos, photos. So the constructor This is going to construct the photos.

And we also need to do super semicolon and then we're going to do at the widget build context. Okay? You don't want to return no We want to get rid of you. Don't feel dumb. If you don't know about GridView or any of this stuff, feel free to check out my other video which I cover all of these layers all these widget types as well. Grid delegates.

Never great delegate with fix. Access count and the actors can come to town with delete, that couldn't be more information that I'd like to reduce to outsiders here. We are going to play an item count. And this is gonna be photos dot length is dynamic item builder. And this is going to be context in there index There we go, Okay, I put a comma where they seem to be in return in the network so you're getting a network you're gonna get a URL and it's going to be photos in the dark from now URL you're getting there we are getting the net here. We can finally, we can instead of sent out we can have a future builder future photo photos.

So what we come into the book and this is the HTTP HTTP client. Sorry, should be photo not photos, made a mistake there. Now we need to implement the builder context nap. So we're gonna say snapshots as their snapshot era. The snapshot photos He needs to pass photos and snapshots. Data otherwise circular progress indicator we've done quite a lot, quite a lot.

So I think we are ready to run this now. So that's what we get. there we go there we go. In case you didn't see that. Let me just hot restart it to reload. take a bit longer than the fetching the data from the internet.

But there we are, we have these images now. That is fine. So obviously there is a lot and you know, the beauty of what we just done right here is you can adapt this the way you No need to you can change the URL Passing photos down, you generally don't really need this anymore. And you can customize this class as you need to whatever information you are returning you. If you don't want photos, it could be, you know, a list of something else. But this is essentially good to be equated to Twitter style application, something that YouTube, something like Facebook, at the end of the day, they all have feeds, they all have you know, dynamic leucon you know, content, whether it's common system or titles.

It's the same. It's essentially the same foundation, the same concept. If you have any questions, though, feel free to drop me a message because I know we covered a lot a whole heap of stuff. And you know, do not hesitate and I look forward to seeing you in the next awesome great circular progress indicator video. Know where that came from. I'll see you soon.

Sign Up

Share

Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.