2011-09-28 290 views
0

我向服务器发送请求,并返回一个长的JSON块。Actionscript 3,解析JSON数据问题

{ 
    "response":"success", 
    "assignments":{ 
    "17733":{ 
    "asnid":"17733", 
    "asnname":"Yitzhak Rabin PPT", 
    "asnclass":"11276", 
    "asndue":"2011-10-03", 
    "asnnotes":"5 Slides in Hebrew", 
    "asnpriority":"0", 
    "asnstatus":"open" 
    }, 
    "9811":{ 
    "asnid":"9811", 
    "asnname":"Java Chapter 1", 
    "asnclass":"11270", 
    "asndue":"2011-09-09", 
    "asnnotes":"Review Exercises 1-14. Programming Exercises 1-6 ", 
    "asnpriority":"0", 
    "asnstatus":"done" 
    }, 

    "9815":{ 
    "asnid":"9815", 
    "asnname":"Hebrew Poems", 
    "asnclass":"11276", 
    "asndue":"2011-09-12", 
    "asnnotes":"1 Name based poem, and One byline poem. See sheet for further reference.", 
    "asnpriority":"0", 
    "asnstatus":"done" 
    }, 
    "11096":{ 
    "asnid":"11096", 
    "asnname":"Java Ethics Essay", 
    "asnclass":"11270", 
    "asndue":"2011-09-15", 
    "asnnotes":"", 
    "asnpriority":"0", 
    "asnstatus":"done" 
    } 
    } 
} 

为了解析这些数据,我使用了com.adobe.serialization.json.JSON类。该类将数据转换为对象,但问题是我需要检查对象“17733”或“9811”中的内容并获取错误。 “1084:语法错误:期待rightparen前0.17733”

我的代码如下:

if (task == "getAssignments") 
    { 
     //trace(loader.data); 
     var getAssnNumbers:Object = JSON.decode(loader.data); 

//解码JSON数据

 for(var i:* in getAssnNumbers.assignments.17733) 
     { 
      assnNumbers.push(i); 
      trace(i); 
     } 

//尝试跟踪存储的数据在getAssnNumbers.assigments.17733 }

有没有办法做到这一点?我检查了该属性是否枚举并返回true,但我无法找到访问这些数据的方法。

回答

2

尝试使用括号记号访问你的财产:

getAssnNumbers.assignments["17733"] 
+0

Thaks这么多!它现在有效。 – akadouri