2012-03-26 2 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); 

Как получить список идентификаторов отчетов (r2807328 и т.д.) и затем соответствующий marchReportId для каждого?

Я пробовал d.stringValues ​​('arReports') и d.stringValues ​​('arReports/marchId'), но я не получаю значения как текст или массив? Что я делаю не так?

ответ

0

Он проходит валидатор, так что я не думаю, что он является недействительным в формате JSON. Вы можете получить доступ к свойствам arreports как ассоциативного массива. При работе с JSON на стороне клиента вы можете сделать следующее, чтобы получить первый элемент с помощью ключа

d.arReports["r2807328"] 

это вернет arReports объект с заданным ключом. Если вы хотите использовать свойство следует использовать

d.arReports["r2807328"].marchTypeStatus 

Если вы хотите сделать это на ServerSide, используя класс 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

Смежные вопросы