3

寻找一个简单的 JS 来计算 .json 文件中的项目数量(在这种情况下,每个项目代表一张被拉入网络应用程序的 instagram 照片;我想计算照片的数量)。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文件并计算项目数。完全不知道从哪里开始。

4

3 回答 3

18

将 JSON 字符串解析为一个对象,并像使用 JavaScript 中的任何其他对象一样使用它:

var o = JSON.parse(jsonstring);

alert(o.features.length); /* number of items in features array */
于 2012-06-27T15:40:11.953 回答
0

当然,首先你必须将 json 字符串转换为 js 对象。通过使用JSON.parse()(不支持 IE6\7)或包含 Crockford 的JSON2 解析器,以便在 IE < 8 上支持它。

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

或者另一种方式,您可以尝试使用一些库,如jsonSelect(JSON 的类似 CSS 的选择器。)或类似JSONPath的东西,然后您可以轻松地操作您的数据,例如:

var reslut = JSONSelect.match('css selector', obj); 
于 2012-06-27T18:34:11.210 回答
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 漏洞。

于 2012-06-27T15:48:52.707 回答