【问题标题】:ROKU: Associative Array with multiple valuesROKU:具有多个值的关联数组
【发布时间】:2020-05-04 05:18:09
【问题描述】:

我有一个两部分的问题,希望有人可以帮助我。

我试图弄清楚如何将一系列年份从我的服务器传递到我的 ROKU 代码。这将是可变的年数,这意味着数组中的元素数量并不总是相同。

我需要弄清楚的是如何设置数组,然后如何在BrightScript中解析它。

这是我目前所拥有的一个例子。我有计数,但仍然需要添加所有年份。

年份列表是1998,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014

{
"Items" : [
  {
    "name": "count",
    "value": "13"
  }
]}

一旦在我的 ROKU 代码中收到它,我将需要循环多年,并显示它们,每行一个。 (我已经完成了显示部分。我只需要知道如何获取数组元素的帮助。)

由于BrightScript 数组的有用文档很少,我希望有更多经验的人能够回答这个问题,并且将来会对其他人有所帮助。

【问题讨论】:

  • 你试过在 Roku 上使用 ParseJSON 吗?

标签: arrays roku brightscript


【解决方案1】:

您无需执行任何操作。只需发送 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 文本的顶级元素是完全有效的(“A JSON 文本是一个序列化的对象或数组。”per RFC 4627)。您也可以使用虚拟对象来执行此操作(但为什么?): arr = parseJSON(" {"years": [1998, 2003]} ").years

【讨论】:

  • 谢谢。我知道必须有更简单的方法。我只是需要有人给我看。 :o)
【解决方案2】:

我是这样解决的:

数组:

{ 
 "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

我希望这对将来的其他人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-26
    • 2013-04-06
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多