如何在corona sdk中解析这个数据结构?

时间:2016-04-22 07:02:12

标签: lua corona

你好我有这个json数据

  

" bookinfo":{" result1":{" page":" 1"," text": " AA""音频":" 1.MP3"},   " RESULT2" {"页面":" 1""文本":" BB""音频":" 2.MP3"},   " result3" {"页面":" 1""文本":" CC"&#。 34;音频":" 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数据不仅有3个结果1,2,3 ......而是数百个,这就是困难所在。

我的问题是jsonContent[1].text没有工作,如何在不知道名字的情况下访问子元素?只是通过编制索引?

**注意:我确定这不是stackoverflow中任何问题的重复,非常感谢。

1 个答案:

答案 0 :(得分:0)

我找到了一个肮脏的解决方法,至少在我的情况下工作,打印字典元素得到了无序......所以我采用了这种方法。

我将此功能添加到主

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

如果您有更好的解决方案,请告诉我们。