2012-01-18 2 views
0
(
    {"resultList": 
     [ 
      {"compSymbol":"OTCM", "secId":12345, "inserterName":"Bob", "adStartDate":new Date(1326258000000), "adEndDate":new Date(1326258001000)}, 
      {"compSymbol":"OTCM", "secId":12345, "inserterName":"Bob", "adStartDate":new Date(1326171600000), "adEndDate":new Date(1326171601000)}, 
      {"compSymbol":"OTCM", "secId":7, "inserterName":"Bob", "adStartDate":new Date(1325480410000), "adEndDate":new Date(1325536200000)}, 
      {"compSymbol":"OTCM", "secId":4, "inserterName":"Bob", "adStartDate":new Date(1325433601000), "adEndDate":new Date(1325394001000)}, 
      {"compSymbol":"OTCM", "secId":3, "inserterName":"Bob", "adStartDate":new Date(1325430001000), "adEndDate":new Date(1325433600000)}, 
      {"compSymbol":"OTCM", "secId":2, "inserterName":"Bob", "adStartDate":new Date(1325426401000), "adEndDate":new Date(1325430000000)}, 
      {"compSymbol":"OTCM", "secId":1, "inserterName":"Bob", "adStartDate":new Date(1325422801000), "adEndDate":new Date(1325426400000)}, 
      {"compSymbol":"OTCM", "secId":5, "inserterName":"Bob", "adStartDate":new Date(1325394002000), "adEndDate":new Date(1325440800000)} 
     ], 

     [ 
      "totalRecords":0 
     ], 

     [ 
      "pages":0 
     ], 

     [ 
      "currentPage":0 
     ], 

     [ 
      "pageSize":20 
     ] 
    } 
) 

Это результат, который я получаю, когда я называю json. Может ли кто-нибудь помочь мне в этом?как попасть внутрь этого списка? также может быть цикл for?

Мне нужно извлечь compSymbol, SecID, имя, adStart, adEnd

Как извлечь их все, используя для цикла?

я использовал:

for(var key in value) 
{ 
    this.createRow(t, value[0].adEndDate, value[0].adStartDate... 
} 

Тогда я понимаю, что нужно было бы целых ...

Пожалуйста, помогите !!

EDIT не нужны totalRecords, страницы, CurrentPage, PAGESIZE, мне нужно только, что находится внутри resultList

+1

'для (вар я = 0; я < list.length; i ++) {/ * list [i] = value, i = key */....} ' –

+3

Этот вопрос задается снова и снова. Я только что ответил почти точно подобным вчера. http: // stackoverflow.com/questions/8902846/extract-from-ajax-response/8903772#8903772 – hvgotcodes

ответ

1
{"resultList": [ 
     {"compSymbol":"OTCM", "secId":12345, "inserterName":"Bob", "adStartDate":new Date(1326258000000), "adEndDate":new Date(1326258001000)}, 
     {"compSymbol":"OTCM", "secId":12345, "inserterName":"Bob", "adStartDate":new Date(1326171600000), "adEndDate":new Date(1326171601000)}, 
     {"compSymbol":"OTCM", "secId":7, "inserterName":"Bob", "adStartDate":new Date(1325480410000), "adEndDate":new Date(1325536200000)}, 
     {"compSymbol":"OTCM", "secId":4, "inserterName":"Bob", "adStartDate":new Date(1325433601000), "adEndDate":new Date(1325394001000)}, 
     {"compSymbol":"OTCM", "secId":3, "inserterName":"Bob", "adStartDate":new Date(1325430001000), "adEndDate":new Date(1325433600000)}, 
     {"compSymbol":"OTCM", "secId":2, "inserterName":"Bob", "adStartDate":new Date(1325426401000), "adEndDate":new Date(1325430000000)}, 
     {"compSymbol":"OTCM", "secId":1, "inserterName":"Bob", "adStartDate":new Date(1325422801000), "adEndDate":new Date(1325426400000)}, 
     {"compSymbol":"OTCM", "secId":5, "inserterName":"Bob", "adStartDate":new Date(1325394002000), "adEndDate":new Date(1325440800000)} 
    ], 
    "totalRecords":0 
    "pages":0 
    "currentPage":0 
    "pageSize":20 
} 

Возможно, это действительно ваши данные. Итак, чтобы получить список результатов, сделайте это, сначала проанализируйте json, есть несколько способов сделать это. 1 вещь просто

var myObj = JSON.parse(string); 

Следующий доступ к списку результатов с помощью разделителя точек.

var myResults = myObj.resultList; 

Теперь ваш объект myResults представляет собой массив объектов json. Очень простой доступ будет выглядеть так.

for (var i = 0; i < myResults.length; i++) { 
    alert(myResults[i].inserterName); // alerts Bob on all the rows because of your data :) 
} 

И там вы идете


Просто так были прямыми, если ваши данные выглядели как один вы предоставили, его несостоявшимся :(

+2

Все, что лучше, чем eval. У современных браузеров есть JSON.parse : 'var myObj = JSON.parse (string)', а старые браузеры имеют json-библиотеки, которые можно использовать. После разбора остальное то же самое –

+1

@Jim Поэтому я сказал, что это самый простой способ. JSON.parse не работает в IE 7 или 8 (насколько я могу сказать, каждый раз получаю ошибки). Я не хотел вносить $.parseJSON либо потому, что у него есть внешняя библиотека. – Michael

+3

да, но json2 доступен, не требуя всего jQuery, и должен быть предпочтительнее. Уверенность в удаленной строке - это серьезный риск для безопасности, и даже с легкостью я бы никогда не предложил ее использовать. –

4

Это не является действительным JSON:

{"resultList": 
     [ 
     //... 
     ], 
     [ 
     //... 
     ], 
     [ 
     //... 
     ], 
     [ 
     //... 
     ], 
     [ 
     //... 
     ] 
    } 

Содержимое resultList не являются ни объектом литерального или массива. Это всего лишь кучка разделенных запятыми литералов массива. Также весь объект заключен в круглые скобки (()), которые никогда не отображаются в действительном JSON (возможно, только проблема форматирования).

Вот как это должно выглядеть следующим образом:

{"resultList": [ 
     [ 
     //... 
     ], 
     [ 
     //... 
     ], 
    ] 
} 

Обратите внимание на дополнительные открытия и закрытия квадратные скобки. Теперь свойство resultList имеет значение массива, и каждый элемент этого массива является самим массивом.

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