armagedon79
Visitor
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2015
09:10 AM
ParseJSON: Data is empty
I tried it in new project it showed the following error.Any help will be much appreciated.
Thank you.
BRIGHTSCRIPT: ERROR: ParseJSON: Data is empty: pkg:/source/Utils.brs(18)
Utils.brs:
app controller:
Json playlist file example:
Thank you.
BRIGHTSCRIPT: ERROR: ParseJSON: Data is empty: pkg:/source/Utils.brs(18)
Utils.brs:
Sub playDefaultClip(app)
sizeRect = app.canvas.GetCanvasRect()
app.player.SetDestinationRect(sizeRect) 'fullscreen
contentList = []
contentList.Push({
Stream: { url: "http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/sl.m3u8" }
StreamFormat: "hls"
})
app.player.SetContentList(contentList)
app.player.play()
print "playing!"
End Sub
Function LoadNavigationContent(contentURL)
jsonAsString = ReadAsciiFile(contentURL)
[color=#FF0000]content = ParseJSON(jsonAsString)[/color]
return content
End Function
app controller:
' Factory method
Function initApp()
player = CreateObject("roVideoPlayer")
canvas = createObject("roImageCanvas")
port = CreateObject("roMessagePort")
canvas.SetMessagePort(port)
canvas.SetRequireAllImagesToDraw(false)
player.SetMessagePort(port)
player.SetLoop(false)
'player.SetPositionNotificationPeriod(5)
navigationContentURL = "pkg:/json/content.json"
navContent = LoadNavigationContent(navigationContentURL)
controls = {
menuControl:initMenuControl(navContent)
playerControl:initPlayerControl()
}
app = {
player:player
canvas:canvas
port:port
'navContent:navContent
controls:controls
paint:paintAll
handleEvents:loopEvents
onLeftKey:handleLeftKey
onUpKey:handleUpKey
onRightKey:handleRightKey
onDownKey:handleDownKey
onExitKey:handleExitKey
onOkKey:handleOkKey
}
return app
End Function
Function paintAll()
m.canvas.AllowUpdates(false)
m.canvas.Clear()
m.canvas.SetLayer(0, { Color: "#a6a663", CompositionMode: "Source" })
' Do, any painting here through the canvas object
for each k in m.controls
m.controls[k].paint(m.canvas)
end for
m.canvas.AllowUpdates(true)
m.canvas.Show()
End function
Function loopEvents()
while true
event = wait(0, m.port)
if (event<> invalid)
'print "events loop"
if (event.isRemoteKeyPressed())
index = event.GetIndex()
print index
if (index = 4) 'Left, pulls out the menu
m.onLeftKey()
else if (index = 2) 'Up
m.onUpKey()
else if (index = 5) 'Right,
m.onRightKey()
else if (index = 3) 'Down
m.onDownKey()
else if (index = 6) 'ok,
m.onOkKey()
else if (index = 0) 'Exit, exits app, if no control is visible
if(m.onExitKey() = 1)
ExitWhile
endif
endif
endif
endif
end while
End function
'If I had interfaces, this would become 'IUserInput'
Function handleLeftKey()
handled = false
for each k in m.controls
handled = m.controls[k].onLeftKey(m)
if(handled)
print 'handled!'
Exit For
end if
end for
end Function
Function handleUpKey()
for each k in m.controls
m.controls[k].onUpKey(m)
end for
end Function
Function handleRightKey()
for each k in m.controls
m.controls[k].onRightKey(m)
end for
end Function
Function handleDownKey()
for each k in m.controls
m.controls[k].onDownKey(m)
end for
end Function
Function handleExitKey()
for each k in m.controls
m.controls[k].onExitKey(m)
end for
return 1
end Function
Function handleOkKey()
for each k in m.controls
m.controls[k].onOkKey(m)
end for
end Function
' end of interface
Json playlist file example:
{"playlist":
[
{"title": "Channel One", "length": 0, "path": "http://www.playon.tv/online/iphone5/main.m3u8"},
{"title": "Channel Two", "length": 0, "path": "http://www.nasa.gov/multimedia/nasatv/NTV-Public-IPS.m3u8"},
{"title": "Channel Three", "length": 0, "path": "http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/sl.m3u8"},
{"title": "Channel Four", "length": 0, "path": "http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8"},
{"title": "Channel Five", "length": 0, "path": "http://184.72.239.149/vod/smil:BigBuckBunny.smil/playlist.m3u8"}
]
}
2 REPLIES 2


Roku Employee
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2015
10:30 AM
Re: ParseJSON: Data is empty
Well, presumably LoadNavigationContent is failing to read the file from ReadAsciiFile, so the string passed to ParseJSON is empty.
You might want to verify that "pkg:/json/content.json" is correct, as the most likely error is the file is not being found.
If you are using the Eclipse project, make sure that the json folder and content.json file is marked to be included in the zip file in the BrightScript Application Deployment.
You might want to verify that "pkg:/json/content.json" is correct, as the most likely error is the file is not being found.
If you are using the Eclipse project, make sure that the json folder and content.json file is marked to be included in the zip file in the BrightScript Application Deployment.
armagedon79
Visitor
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-29-2015
07:44 PM
Re: ParseJSON: Data is empty
Thanks