如何在 Corona SDK 中解析这个数据结构?

你好,我有这个 json 数据

"bookinfo": { "result1":{"page":"1","text":"aa","audio":"1.mp3"}, "result2":{"page":"1","text":"bb","audio":"2.mp3"}, "result3":{"page":"1","text":"cc.","audio":"3.mp3"} }

我用这段代码

  local function networkListener( event )
      if ( event.isError ) then
          print ( "ERROR!" )
      else
          local jsonContent = json.decode(event.response).bookinfo
          print(jsonContent[1].text )
      end
    end

json 数据不仅仅只有 result1、result2、result3,而是有上百个,这也是难点所在。

我的问题是如何在不知道元素名称的情况下访问子元素?只需使用索引吗?

\*\* 注意:我确信这不是任何 Stack Overflow 问题的重复,请多多指教。

点赞
用户5312361
用户5312361

我发现了一个脏的解决方案,至少在我这种情况下可以工作,打印字典元素是无序的...所以我按照这种方法进行。

我将此功能添加到 main 函数中

function tablelength(T)
  local count = 0
  for _ in pairs(T) do count = count + 1 end
  return count
end

然后我使用了这个

   local count = 0

    local function networkListener( event )
        if (event.isError) then
            print ( "ERROR!" )
        else
            local jsonContent = json.decode(event.response)
            count = tablelength(jsonContent.bookinfo); print(count)
            local content = jsonContent
            local texts = {}
            for i=1,count do texts[i] = jsonContent.bookinfo["result"..i].text end
        end
    end

如果你有更好的解决方案,请让我们知道。

2016-04-23 10:00:03