2012-03-26 35 views
1

使用我的JSON文本,看起來像這樣:如何SBT JsonNavigator

{ 
    "ok": true, 
    "totalPages": 256, 
    "arReports": { 
    "r2807328": { 
     "marchReportId": "2807328", 
     "reportUnixTime": "1332742728", 
     "marchTypeState": "1" 
    }, 
    "r2804256": { 
     "marchReportId": "2804256", 
     "reportUnixTime": "1332722319", 
     "marchType": "4", 
     "marchTypeState": "1" 
    } 
    }, 
    "arOtherNames": { 
    "a455": "JL", 
    "a44": "CCCP", 
    "a796": "Waffenstudenten" 
    } 
} 

我那麼做:

var objGW = eval('(' + s + ')'); 
var d = new sbt.JsonNavigator(objGW); 

如何獲取的報告ID(r2807328等)的列表,並那麼每個對應的marchReportId?我試過d.stringValues('arReports')和d.stringValues('arReports/marchId')但我沒有得到作爲文本或數組的值?我究竟做錯了什麼?

回答

0

所以我不認爲它是無效的JSON它通過驗證。您可以以關聯數組的形式訪問arreports的屬性。當使用JSON在客戶方工作,你可以執行以下操作來檢索關鍵

d.arReports["r2807328"] 

這第一個元素將返回arReports與給定密鑰對象。如果你想使用的屬性,你應該使用

d.arReports["r2807328"].marchTypeStatus 

如果你想使用jsonnavigator類,你可以使用下面的語法

var d = new sbt.JsonNavigator(json); 
d.stringValues('arReports/r2807328') 

var d = new sbt.JsonNavigator(json); 
d.stringValues('arReports/r2807328/marchTypeStatus') 
做它的服務器端

進一步參考請看以下鏈接

SBT Demo

0

我相信你缺少的方括號,使你的代碼的對象 看看這裏的例子 - >http://www.w3schools.com/json/default.asp

+0

上面的JSON文本是由外部應用程序生成的 - 我相信這是一個多維數組?我做了仔細檢查,以確保它不會用[]返回。 – Anil 2012-03-26 13:05:41