impoting data from a json file

how can i import data from a local json file?

By “local” do you mean it’s part of the channel pkg/zip file?

yes exactly

json = ParseJson(ReadAsciiFile("pkg:/dir/file.json")

perfect thank you, will give it a shot

if i have a json file that contains data of multiple tiles and each tile consists of 2 labels and a poster and i have the data in the json file how can i exactly use them?

When you use ParseJason you’ll get an object back (or invalid if the JSON isn’t valid), so you’d do something like this:

json = ParseJson(ReadAsciifile("pkg:/dir/file.json"))
' check json:
if json <> invalid then
   print json.Count();" entries"
   for i = 0 to json.Count()-1
      print i,"Title is ";json[i].title
   end for
end if

okay thank you will try it :ok_hand: :ok_hand:

one more question if i want to assign the title to the title in json ow can i do that?

i tried but it didnt work

m.tile.titleText=json[3].title

You don’t need to do that as you will only get row #3

json = ParseJson(ReadAsciifile("pkg:/dir/file.json"))
' check json:
if json <> invalid then
   print json.Count();" entries"
   for i = 0 to json.Count()-1
      print i,"Title is ";json[i].title
      print i,"Poster is ";json[i].poster
      print i,"Description is ";json[i].description
   end for
end if

it gives me an error it doesnt compile

json = ParseJson(ReadAsciifile(“pkg:/assets/Data.json”))
’ check json:
if json <> invalid then
print json.Count(); “entries”
for i = 0 to json.Count() - 1
print i, "Title is " json[i].title
print i, "poster is " json[i].poster
print i, "desc is " json[i].description
end for
end if

this is what i did but this only displays the data on the terminal, i actually want to use the data to set them for the fields i already have and display on screen

instead of doing m.tile.title = “title1”

and m.tile.descriptionText=“this is new description for first tile”

i want to load it from the json file

I don’t understand why use a json with multiple content and get only 1, you should use a rowlist and select the one I want to display information from

i want to retrieve all data in the json file but i was just trying on one i dont know how to do that

Could you help to know more about the code so I can help you?

okay so what i want to do is that instead of setting the fields {title and image and description} manually from here like the code below i want to load them from the json file.

so instead of doing this:

m.tile.titleText = “Title1”
m.tile.descriptionText = “this is the new description for the first tile”
m.tile.posterUrl = “pkg:/assets/images/image1.jpg”
i want to use the data in the json file

@youssefsherif , when you post code don’t do a screenshot, do a copy and paste into a code block. The icon looks like </> when you expand the toolbar when you make a post. It will open a popup for you to paste your code into.

Just replace the text in the code with the proper object property from the parsed JSON.

Instead of:

m.tile.descriptionText = "This is a description"

You would have:

m.tile.descriptionText = json[2].description

json[2] is third entry of json and is an object with several parts: title, poster, and description. Just “json” is an even larger object (an roArray) with, in this case, 3 entries each of which is an object itself (an roAssociativeArray). Array indices start from 0, so in this example json[3] doesn’t exist. There’s only json[0], json[1], and json[2]. You need to understand these concepts or you’re going to have a tough time with BrightScript.

worked perfectly thank you so much for your clarification and your help this helped me a lot. still trying to learn thank you so much again :folded_hands: :folded_hands: