У меня есть ответ JSON, указанный в списке, и я хочу получить доступ к первому "name": "Facebook, Inc."

{
    "ResultSet": {
        "Query": "FB",
        "Result": [{
            "symbol": "FB",
            "name": "Facebook, Inc.",
            "exch": "NAS",
            "type": "S",
            "exchDisp": "NASDAQ",
            "typeDisp": "Equity"
        }, {
            "symbol": "FBIOX",
            "name": "Fidelity Select Biotechnology Portfolio",
            "exch": "NAS",
            "type": "M",
            "exchDisp": "NASDAQ",
            "typeDisp": "Fund"
        }, {
            "symbol": "FBP",
            "name": "First Bancorp",
            "exch": "NYQ",
            "type": "S",
            "exchDisp": "NYSE",
            "typeDisp": "Equity"
        }, {
            "symbol": "FBNK",
            "name": "First Connecticut Bancorp, Inc.",
            "exch": "NMS",
            "type": "S",
            "exchDisp": "NASDAQ",
            "typeDisp": "Equity"
        }, {
            "symbol": "FBHS",
            "name": "Fortune Brands Home & Security, Inc.",
            "exch": "NYQ",
            "type": "S",
            "exchDisp": "NYSE",
            "typeDisp": "Equity"
        }, {
            "symbol": "FB2A.DE",
            "name": "Facebook, Inc.",
            "exch": "GER",
            "type": "S",
            "exchDisp": "XETRA",
            "typeDisp": "Equity"
        }, {
            "symbol": "FBIZ",
            "name": "First Business Financial Services, Inc.",
            "exch": "NMS",
            "type": "S",
            "exchDisp": "NASDAQ",
            "typeDisp": "Equity"
        }, {
            "symbol": "FBR",
            "name": "Fibria Celulose S.A.",
            "exch": "NYQ",
            "type": "S",
            "exchDisp": "NYSE",
            "typeDisp": "Equity"
        }, {
            "symbol": "FBC",
            "name": "Flagstar Bancorp Inc.",
            "exch": "NYQ",
            "type": "S",
            "exchDisp": "NYSE",
            "typeDisp": "Equity"
        }, {
            "symbol": "FFG",
            "name": "FBL Financial Group Inc.",
            "exch": "NYQ",
            "type": "S",
            "exchDisp": "NYSE",
            "typeDisp": "Equity"
        }]
    }
}

Я использовал следующий код JavaScript, чтобы получить значение:

     var res = jQuery.map(data.ResultSet.Result, function (item) {
     var asset = {
     symbol:item.symbol,
     name:item.name,
     type:item.type,
     exch:item.exchDisp
            }; 
     var cname=asset.name

Но я получаю фамилию в переменную cname. как мне ввести имя в cname?

-1
Rahul Rameshan 15 Дек 2015 в 08:44

3 ответа

Лучший ответ
var resultArray = data.ResultSet.Result;
var cname = "";
var firstRecord = resultArray[0];
cname = firstRecord.name;
0
arun 15 Дек 2015 в 06:51

Вы получаете последнее значение, потому что вы используете его внутри map.

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

Поместите свой cname вне map

Как это

var res = jQuery.map(data.ResultSet.Result, function(item) {
    var asset = {
        symbol: item.symbol,
        name: item.name,
        type: item.type,
        exch: item.exchDisp
    };
    return asset;
});

var cname = res[0].name
2
Anik Islam Abhi 15 Дек 2015 в 05:48

Я бы использовал функцию поиска Лодаша следующим образом:

var target = _.find(data.ResultSet.Result, function(r){
    return r.name === "Facebook, Inc.";
})

Вот jsfiddle:

https://jsfiddle.net/mckinleymedia/hxnp99vg/

Это найдет первый объект в вашем массиве, который соответствует условному выражению в возвращаемом файле: r.name === "Facebook, Inc.".

0
William Schroeder McKinley 15 Дек 2015 в 07:22