首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问具有名称编号的JSON元素

访问具有名称编号的JSON元素
EN

Stack Overflow用户
提问于 2017-01-25 23:10:48
回答 2查看 119关注 0票数 0

我试图访问json结构的一个元素,但无法访问。我尝试了以下内容。

我正在使用npm包json-query提取更大的JSON对象的一部分。

代码语言:javascript
复制
var rslt = jsonQuery('results[**][* status=active]', {
                    data: response
                });

var make = JSON.stringify(rslt.value[0]["parms"]["make"]) 

但是这不起作用,我还尝试从JSON获得以下数据:

代码语言:javascript
复制
var img = JSON.stringify(rslt.value[0]["photos"]["1"]["320x240"]);

var subtitle = JSON.stringify(rslt.value[0]["parms"]["price"]["1"]) + ' EUR';

这是我正在处理的JSON数据:

代码语言:javascript
复制
{  
   "value":[  
      {  
         "id":7038271775,
         "user_id":1307227,
         "status":"active",
         "title":"",
         "url":"https://www.autovit.ro/anunt/nissan-navara-ID7GjS0w.html",
         "created_at":"2017-01-06 17:49:35",
         "valid_to":"2017-02-03 17:56:16",
         "description":"Data inmatriculare: 02.03.2015.\r\n4x4  \r\nABS  \r\nAer conditionat  \r\nComputer de bord  \r\nGeamuri electrice  \r\nInchidere centralizata  \r\nJante aliaj  \r\nRadio CD  \r\nServodirectie  \r\nVolan multifunctional",
         "category_id":29,
         "region_id":46,
         "city_id":24691,
         "city":{  
            "ro":"Voluntari",
            "en":"Voluntari"
         },
         "coordinates":{  
            "latitude":44.49192877,
            "longitude":26.12458706,
            "radius":0,
            "zoom_level":16
         },
         "advertiser_type":"business",
         "contact":{  
            "person":"LeasePlan Outlet Center",
            "phone_numbers":[  
               "0753312151"
            ]
         },
         "params":{  
            "make":"nissan",
            "model":"navara",
            "year":2014,
            "mileage":16785,
            "engine_capacity":2500,
            "vin":"VSKCVND40U0566467",
            "fuel_type":"diesel",
            "gearbox":"manual",
            "transmission":"all-wheel-lock",
            "particle_filter":"0",
            "green_tax":"1",
            "damaged":"0",
            "body_type":"suv",
            "door_count":4,
            "color":"white",
            "metallic":"0",
            "pearl":"0",
            "matt":"0",
            "rhd":"0",
            "features":[  ],
            "price":{  
               "0":"price",
               "1":15900,
               "currency":"EUR",
               "gross_net":"net"
            },
            "vat":"1",
            "financial_option":"1",
            "leasing_concession":"0",
            "date_registration":"2014-1-01",
            "registered":"1",
            "original_owner":"1",
            "no_accident":"0",
            "service_record":"0",
            "historical_vehicle":"0",
            "tuning":"0"
         },
         "photos":{  
            "1":{  
               "1080x720":"https://img41.autovit.ro/images_autovitro/820558483_1_1080x720.jpg",
               "732x488":"https://img40.autovit.ro/images_autovitro/820558483_1_732x488.jpg",
               "320x240":"https://img42.autovit.ro/images_autovitro/820558483_1_320x240.jpg",
               "148x110":"https://img40.autovit.ro/images_autovitro/820558483_1_148x110.jpg"
            },
            "2":{  
               "1080x720":"https://img41.autovit.ro/images_autovitro/820558483_2_1080x720.jpg",
               "732x488":"https://img42.autovit.ro/images_autovitro/820558483_2_732x488.jpg",
               "320x240":"https://img42.autovit.ro/images_autovitro/820558483_2_320x240.jpg",
               "148x110":"https://img42.autovit.ro/images_autovitro/820558483_2_148x110.jpg"
            },
            "3":{  
               "1080x720":"https://img42.autovit.ro/images_autovitro/820558483_3_1080x720.jpg",
               "732x488":"https://img42.autovit.ro/images_autovitro/820558483_3_732x488.jpg",
               "320x240":"https://img40.autovit.ro/images_autovitro/820558483_3_320x240.jpg",
               "148x110":"https://img42.autovit.ro/images_autovitro/820558483_3_148x110.jpg"
            },
            "4":{  
               "1080x720":"https://img42.autovit.ro/images_autovitro/820558483_4_1080x720.jpg",
               "732x488":"https://img40.autovit.ro/images_autovitro/820558483_4_732x488.jpg",
               "320x240":"https://img42.autovit.ro/images_autovitro/820558483_4_320x240.jpg",
               "148x110":"https://img42.autovit.ro/images_autovitro/820558483_4_148x110.jpg"
            },
            "5":{  
               "1080x720":"https://img41.autovit.ro/images_autovitro/820558483_5_1080x720.jpg",
               "732x488":"https://img41.autovit.ro/images_autovitro/820558483_5_732x488.jpg",
               "320x240":"https://img41.autovit.ro/images_autovitro/820558483_5_320x240.jpg",
               "148x110":"https://img40.autovit.ro/images_autovitro/820558483_5_148x110.jpg"
            },
            "6":{  
               "1080x720":"https://img40.autovit.ro/images_autovitro/820558483_6_1080x720.jpg",
               "732x488":"https://img42.autovit.ro/images_autovitro/820558483_6_732x488.jpg",
               "320x240":"https://img40.autovit.ro/images_autovitro/820558483_6_320x240.jpg",
               "148x110":"https://img42.autovit.ro/images_autovitro/820558483_6_148x110.jpg"
            },
            "7":{  
               "1080x720":"https://img40.autovit.ro/images_autovitro/820558483_7_1080x720.jpg",
               "732x488":"https://img41.autovit.ro/images_autovitro/820558483_7_732x488.jpg",
               "320x240":"https://img40.autovit.ro/images_autovitro/820558483_7_320x240.jpg",
               "148x110":"https://img40.autovit.ro/images_autovitro/820558483_7_148x110.jpg"
            },
            "8":{  
               "1080x720":"https://img42.autovit.ro/images_autovitro/820558483_8_1080x720.jpg",
               "732x488":"https://img41.autovit.ro/images_autovitro/820558483_8_732x488.jpg",
               "320x240":"https://img42.autovit.ro/images_autovitro/820558483_8_320x240.jpg",
               "148x110":"https://img40.autovit.ro/images_autovitro/820558483_8_148x110.jpg"
            },
            "9":{  
               "1080x720":"https://img41.autovit.ro/images_autovitro/820558483_9_1080x720.jpg",
               "732x488":"https://img40.autovit.ro/images_autovitro/820558483_9_732x488.jpg",
               "320x240":"https://img40.autovit.ro/images_autovitro/820558483_9_320x240.jpg",
               "148x110":"https://img42.autovit.ro/images_autovitro/820558483_9_148x110.jpg"
            },
            "10":{  
               "1080x720":"https://img41.autovit.ro/images_autovitro/820558483_10_1080x720.jpg",
               "732x488":"https://img42.autovit.ro/images_autovitro/820558483_10_732x488.jpg",
               "320x240":"https://img40.autovit.ro/images_autovitro/820558483_10_320x240.jpg",
               "148x110":"https://img40.autovit.ro/images_autovitro/820558483_10_148x110.jpg"
            },
            "11":{  
               "1080x720":"https://img42.autovit.ro/images_autovitro/820558483_11_1080x720.jpg",
               "732x488":"https://img42.autovit.ro/images_autovitro/820558483_11_732x488.jpg",
               "320x240":"https://img41.autovit.ro/images_autovitro/820558483_11_320x240.jpg",
               "148x110":"https://img42.autovit.ro/images_autovitro/820558483_11_148x110.jpg"
            }
         },
         "image_collection_id":820558483,
         "last_update_date":"2017-01-24 18:00:26",
         "new_used":"used"
      }
   ],
   "is_last_page":false,
   "is_first_page":true,
   "current_page":1,
   "total_pages":33,
   "current_elements":1,
   "total_elements":33
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-25 23:34:32

我不知道它是如何不工作的,我在代码中看到的唯一问题是您错误地编写了params和编写了parms

票数 1
EN

Stack Overflow用户

发布于 2017-01-25 23:39:30

我不知道“JSON”能做些什么,但我认为您可以像这样安全地提取任何JSON部分;

代码语言:javascript
复制
function dig(input, key) {
    var keys = (""+ key).split("."), key = keys.shift();
    if (!keys.length) {
        return input[key];
    }
    return dig(input[key], keys.join("."));
}

// here that gives me already without any error thrown >> https://img42.autovit.ro/images_autovitro/820558483_1_320x240.jpg
var p = dig(rslt, "results.0.photos.1.320x240");
console.log(p);

// this is same with
console.log(rslt.results[0].photos[1]["320x240"]);

学分:https://github.com/yay-couch/couch-js/blob/master/couch/util/util.js#L46

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41863373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档