2012-06-27 4 views
2

Ищете простой бит JS для подсчета количества элементов в файле .json (каждый элемент представляет в этом случае фотографию instagram, загружаемую в веб-приложение, я хочу подсчитайте количество фотографий). Json структурирован таким образом ...Количество элементов в массиве json

{ 
"type":"FeatureCollection", 
"features":[ 
    { 
    "type":"Feature", 
    "geometry":{ 
     "coordinates":[ 
      -79.40916, 
      43.87767 
     ], 
     "type":"Point" 
    }, 
    "properties":{ 
     "longitude":-79.40916, 
     "latitude":43.87767, 
     "title":"", 
     "user":"cmay2400", 
     "id":"176051485697457528_13947894", 
     "image":"http:\/\/distilleryimage0.instagram.com\/1d725a3a8d7511e181bd12313817987b_7.jpg", 
     "images":{ 
      "low_resolution":{ 
       "url":"http:\/\/distilleryimage0.instagram.com\/1d725a3a8d7511e181bd12313817987b_6.jpg", 
       "width":306, 
       "height":306 
      }, 
      "thumbnail":{ 
       "url":"http:\/\/distilleryimage0.instagram.com\/1d725a3a8d7511e181bd12313817987b_5.jpg", 
       "width":150, 
       "height":150 
      }, 
      "standard_resolution":{ 
       "url":"http:\/\/distilleryimage0.instagram.com\/1d725a3a8d7511e181bd12313817987b_7.jpg", 
       "width":612, 
       "height":612 
      } 
     }, 
     "description":"Today's ride <span class=\"tag\">#zipcar<\/span>", 
     "instagram_id":"13947894", 
     "likes":1, 
     "profile_picture":"http:\/\/images.instagram.com\/profiles\/profile_13947894_75sq_1322267355.jpg" 
    } 
    }, 
    { 
    "type":"Feature", [...] 

Я просто хочу прокрутить файл json и подсчитать количество элементов. Полностью потеряно, с чего начать.

+3

так мы, какие свойства вы хотите посчитать? – xandercoded

+1

Точно, какие предметы вы пытаетесь подсчитать? – natlee75

+0

Вы уже загрузили файл .json в объект JS? –

ответ

15

Parse the JSON string в объект и использовать его, как вы бы любой другой объект в JavaScript:

var o = JSON.parse(jsonstring); 

alert(o.features.length); /* number of items in features array */ 
0

Это более или менее код, который вы ищете:

var variable = jQuery.parseJSON(stringThatIsStoringJson); 

for(var i=0;i<variable.features.length;i++) { 
    doStuff(variable.features[i]); 

    for(var j=0;j<variable.features[i].geometry.coordinates.length;j++) { 
     doMoreStuff(variable.features[i].geometry.coordinates[j]); 
    } 
} 

Предполагая, что вы используете JQuery. Вы можете разбирать JSON с любой библиотекой, которую хотите. Просто избегайте eval(), который открывает ваш сайт уязвимостям XSS.

0

Конечно, первое, что вы должны преобразовать json-строку в объект js. с использованием JSON.parse() (IE6 \ 7 не поддерживает) или включать Крокфорд-х JSON2 parser для того, чтобы поддержать его на IE < 8.

var obj = JSON.parse(jsonstr); 
// loop the obj to find out what you want 

так или иначе, вы можете попробовать использовать некоторые LIB как jsonSelect (CSS-подобные селекторы . для JSON) или что-то вроде JSONPath, то вы можете легко манипулировать данными, как:

var reslut = JSONSelect.match('css selector', obj); 
Смежные вопросы