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”:
}]
}

A couple ways to skin this cat that might work.


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

arrayFromJSON = parseJSON(....)
arrayFromJSON.shift()
' or
arrayFromJSON.delete(0)

“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)

“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.

“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:

“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.

“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?).

“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. :slightly_smiling_face:

“RokuKC” wrote:
ParseJSON and FormatJSON are supported functions for devices running modern firmware.
parseJSON() is also supported on fw3, which (unusually - but thankfully) was noted in the docs.

No biggie about no formatJSON() on fw3, since that is the easy direction - parsing is the slow one. Thanks for adding version note to it.