Roku Developer Program

Join our online forum to talk to Roku developers and fellow channel creators. Ask questions, share tips with the community, and find helpful resources.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
rohitkaushik
Visitor

how to delete a array from json?

hi,

I want to delete a array from json.In this example , I want to delete first item whose groupName="Ungrouped".
Please help me.
e.g.--->
{
"destinationContent": [{
"groupName": "Ungrouped",
"isAuth": false,
"groupImgeUrl": "",
"video": []
},
{
"groupName": "grouped",
"isAuth": false,
"groupImgeUrl": "",
"video": []
}]
}
0 Kudos
10 REPLIES 10
dcrandall
Visitor

Re: how to delete a array from json?

A couple ways to skin this cat that might work.


thingToClean = parseJSON(yourJSON)
thingToClean.offendingVariable = invalid
yourJSON = formatJSON(thingToClean)

0 Kudos
EnTerr
Roku Guru

Re: how to delete a array from json?

arrayFromJSON = parseJSON(....)
arrayFromJSON.shift()
' or
arrayFromJSON.delete(0)
0 Kudos
RokuKC
Roku Employee
Roku Employee

Re: how to delete a array from json?

"rohitkaushik" wrote:
I want to delete a array from json.In this example , I want to delete first item whose groupName="Ungrouped".
}


Assuming the Ungrouped item is not necessarily the first:

j = ParseJSON(jsonStr)

for i = 0 to j.destinationContent.Count() - 1
item = j.destinationContent[ i ]
if item.groupName = "Ungrouped"
j.destinationContent.Delete(i)
exit for
end if
end for

newJsonStr = FormatJSON(j)
0 Kudos
TheEndless
Channel Surfer

Re: how to delete a array from json?

"RokuKC" wrote:
"rohitkaushik" wrote:
I want to delete a array from json.In this example , I want to delete first item whose groupName="Ungrouped".
}


Assuming the Ungrouped item is not necessarily the first:

j = ParseJSON(jsonStr)

for i = 0 to j.destinationContent.Count() - 1
item = j.destinationContent[ i ]
if item.groupName = "Ungrouped"
j.destinationContent.Delete(i)
exit for
end if
end for

newJsonStr = FormatJSON(j)

That also assumes it's the only one in the array. If there are multiple, you can reverse the loop and do this:
j = ParseJSON(jsonStr)

for i = j.destinationContent.Count() - 1 to 0 step -1
item = j.destinationContent[ i ]
if item.groupName = "Ungrouped"
j.destinationContent.Delete(i)
end if
end for

newJsonStr = FormatJSON(j)

It's also worth noting that FormatJSON isn't a supported function. If you use it in the wrong place, it could hang or crash the box.
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)
0 Kudos
EnTerr
Roku Guru

Re: how to delete a array from json?

"TheEndless" wrote:
"RokuKC" wrote:
Assuming the Ungrouped item is not necessarily the first:
[code ... /]

That also assumes it's the only one in the array. If there are multiple, you can reverse the loop and do this:
[code ... /]

OP said `I want to delete first item whose groupName="Ungrouped" ` - i think RokuKC gave the broadest possible reading.

It's also worth noting that FormatJSON isn't a supported function. If you use it in the wrong place, it could hang or crash the box.

Hm, true that. Good opportunity to peddle my toJSON() :mrgreen:
0 Kudos
dcrandall
Visitor

Re: how to delete a array from json?

"TheEndless" wrote:

It's also worth noting that FormatJSON isn't a supported function. If you use it in the wrong place, it could hang or crash the box.


(queue Kyle's mom from southpark)
What what what?
(/queue)

a) They didn't say anything about it not being supported in the docs. I believe you, but now I'm questioning everything.
http://sdkdocs.roku.com/display/sdkdoc/ ... erasString

b) What situations will hang the box, if I may ask? Inquiring minds want to know.
0 Kudos
TheEndless
Channel Surfer

Re: how to delete a array from json?

"dcrandall" wrote:
"TheEndless" wrote:

It's also worth noting that FormatJSON isn't a supported function. If you use it in the wrong place, it could hang or crash the box.


(queue Kyle's mom from southpark)
What what what?
(/queue)

a) They didn't say anything about it not being supported in the docs. I believe you, but now I'm questioning everything.
http://sdkdocs.roku.com/display/sdkdoc/ ... erasString

Well, would you look at that. They documented it, so I guess it is supported now!

"dcrandall" wrote:
b) What situations will hang the box, if I may ask? Inquiring minds want to know.

In previous tests, we found that an AA with a circular reference would hang the box (for obvious reasons). Now that it's documented, it's possible they put checks in to prevent that.
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)
0 Kudos
EnTerr
Roku Guru

Re: how to delete a array from json?

"TheEndless" wrote:
Well, would you look at that. They documented it, so I guess it is supported now!

Apparently. Dog forbid someone let us know about it though, by say publishing release notes or at least reply to that forum thread.
Anybody want to place a bet if formatJSON() as documented works on fw3 ?

"TheEndless" wrote:
In previous tests, we found that an AA with a circular reference would hang the box (for obvious reasons). Now that it's documented, it's possible they put checks in to prevent that.

Just checked and that was fixed... eh, kind of. It doesn't reboot the player anymore but shows an ugly, UGLY warning which calls itself an ": ERROR:" yet keeps executing (eh?).
0 Kudos
RokuKC
Roku Employee
Roku Employee

Re: how to delete a array from json?

"dcrandall" wrote:
"TheEndless" wrote:

It's also worth noting that FormatJSON isn't a supported function. If you use it in the wrong place, it could hang or crash the box.


ParseJSON and FormatJSON are supported functions for devices running modern firmware.

Bug reports are always welcome. 🙂
0 Kudos