我有两个问题,我希望有人可以帮助我。
我正在试图弄清楚如何将数组从服务器传递到我的ROKU代码。这将是一个可变的年数,这意味着数组中的元素总数不会相同。
我需要弄清楚的是如何设置数组,然后如何在BrightScript
中解析它。
这是我到目前为止所拥有的一个例子。我有计数,但仍需要添加所有年份。
年份列表为1998,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014
{
"Items" : [
{
"name": "count",
"value": "13"
}
]}
一旦我的ROKU代码收到,我需要循环多年,并显示它们,每行一个。 (我已经完成了显示部分。我只需要知道如何获取数组元素的帮助。)
由于BrightScript
阵列的有用文档很少,我希望有更多经验的人能够回答这个问题,并且将来会帮助其他人。
答案 0 :(得分:3)
您无需执行任何操作。只需发送JSON数组,Roku就会解析它:
BrightScript Debugger> myJSON = "[1998,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014]"
BrightScript Debugger> ? type(myJSON)
String
BrightScript Debugger> arr = parseJSON(myJSON)
BrightScript Debugger> ? type(arr)
roArray
将数组作为json文本的顶级元素(“JSON文本是序列化对象或数组。”每RFC 4627)完全有效。您也可以使用虚拟对象(但为什么?):
arr = parseJSON(" {"years": [1998, 2003]} ").years
答案 1 :(得分:1)
以下是我解决它的方法:
阵列:
{
"Items" : [
{ "value": "2014" } ,
{ "value": "2013" } ,
{ "value": "2012" } ,
{ "value": "2011" } ,
{ "value": "2010" } ,
{ "value": "2009" } ,
{ "value": "2008" } ,
{ "value": "2007" } ,
{ "value": "2006" } ,
{ "value": "2005" } ,
{ "value": "2004" } ,
{ "value": "2003" } ,
{ "value": "1998" }
]
}
用于解析它的BrightScript代码:
arr = CreateObject("roArray",json.Items.count(),false)
for each item in json.Items
thisItem = {
value: item.value
}
arr.push(thisItem)
end for
return arr
我希望将来可以帮助别人。