1

这是存储收藏频道列表的功能。但我无法将数组存储在注册表中,因为只能将字符串作为输入

 Function addToFavorites(channeljson as object)as boolean
        print "started"
        sec = CreateObject("roRegistrySection", "FuturV1")
        poster = CreateObject("roAssociativeArray")
        'if not sec.Exists("FavoriteChannels")
        contentList = CreateObject("roArray", 100, true)
        'else

        'end if 
       poster.ShortDescriptionLine1 = channeljson.name
       poster.SDPosterURL = channeljson.logo
       poster.HDPosterURL = ch`enter code here`anneljson.logo
       poster.url= channeljson.ch
       contentList.push( poster ) `enter code here`
       'sec.Write("FavoriteChannels", ba.ToAsciiString())

       print "again"
       print contentList.GetEntry(0) 
    end function
4

3 回答 3

2

最简单的方法是使用formatJSON() / parseJSON()

于 2016-05-20T21:29:08.913 回答
2

下面是使用 ParseJSON 和 FormatJSON 保存注册表设置的函数示例:

Sub SaveSettings(settings as Object)
    SaveRegistryString("Settings", FormatJSON({settings: settings}, 1))
End Sub

Function LoadSettings() as Dynamic
    json = GetRegistryString("Settings")
    if json <> ""
        obj = ParseJSON(json)
        if obj <> invalid
            return obj.settings
        end if
    end if
    return invalid
End Function

Function GetRegistryString(key as String, default = "") As String
    sec = CreateObject("roRegistrySection", "YourAppName")
    if sec.Exists(key)
        return sec.Read(key)
    end if
    return default
End Function

Sub SaveRegistryString(key As String, value As String)
    sec = CreateObject("roRegistrySection", "YourAppName")
    sec.Write(key, value)
    sec.Flush()
End Sub
于 2016-09-05T17:54:02.377 回答
1

将任何对象存储到持久存储中 -

  1. 将对象(roArray 或 roAssociativeArray)转换为字符串
  2. 将该字符串存储在持久存储中。

从持久性存储中检索数据 -

  1. 从持久性中读取字符串。
  2. 将 String 转换为 Object 以使用。如果是 roAssociativeArray,您可以使用 ParseJSON 函数。
于 2016-05-20T05:36:39.367 回答