Anonymous
Как прочитать массив JSON с JavaScript, чтобы получить значение, если он существует
Сообщение
Anonymous » 31 авг 2025, 02:25
Вот мой код JSON. Я храню этот json в массиве. < /P>
Код: Выделить всё
{
"kind": "urlshortener#url",
"id": "http://example.com/2FIrtF",
"longUrl": "http://hike.com/?utm_source=facebook",
"status": "OK",
"created": "2015-09-22T13:45:53.645+00:00",
"analytics": {
"allTime": {
"shortUrlClicks": "1",
"longUrlClicks": "1",
"referrers": [
{
"count": "1",
"id": "unknown"
}
],
"countries": [
{
"count": "1",
"id": "IN"
}
],
"browsers": [
{
"count": "1",
"id": "Chrome"
}
],
"platforms": [
{
"count": "1",
"id": "Macintosh"
}
]
},
"month": {
"shortUrlClicks": "1",
"longUrlClicks": "1",
"referrers": [
{
"count": "1",
"id": "unknown"
}
],
"countries": [
{
"count": "1",
"id": "IN"
}
],
"browsers": [
{
"count": "1",
"id": "Chrome"
}
],
"platforms": [
{
"count": "1",
"id": "Macintosh"
}
]
},
"week": {
"shortUrlClicks": "1",
"longUrlClicks": "1",
"referrers": [
{
"count": "1",
"id": "unknown"
}
],
"countries": [
{
"count": "1",
"id": "IN"
}
],
"browsers": [
{
"count": "1",
"id": "Chrome"
}
],
"platforms": [
{
"count": "1",
"id": "Macintosh"
}
]
},
"day": {
"shortUrlClicks": "0",
"longUrlClicks": "0"
},
"twoHours": {
"shortUrlClicks": "0",
"longUrlClicks": "0"
}
},
"result": {
"kind": "urlshortener#url",
"id": "https://www.hike.com/?utm_source=facebook-pp&utm_medium=anvy&utm_campaign=naveen-2&utm_term=%2F&utm_content=100",
"longUrl": "http://hike.com/?utm_source=facebook",
"status": "OK",
"created": "2015-09-22T13:45:53.645+00:00",
"analytics": {
"allTime": {
"shortUrlClicks": "1",
"longUrlClicks": "1",
"referrers": [
{
"count": "1",
"id": "unknown"
}
],
"countries": [
{
"count": "1",
"id": "IN"
}
],
"browsers": [
{
"count": "1",
"id": "Chrome"
}
],
"platforms": [
{
"count": "1",
"id": "Macintosh"
}
]
},
"month": {
"shortUrlClicks": "1",
"longUrlClicks": "1",
"referrers": [
{
"count": "1",
"id": "unknown"
}
],
"countries": [
{
"count": "1",
"id": "IN"
}
],
"browsers": [
{
"count": "1",
"id": "Chrome"
}
],
"platforms": [
{
"count": "1",
"id": "Macintosh"
}
]
},
"week": {
"shortUrlClicks": "1",
"longUrlClicks": "1",
"referrers": [
{
"count": "1",
"id": "unknown"
}
],
"countries": [
{
"count": "1",
"id": "IN"
}
],
"browsers": [
{
"count": "1",
"id": "Chrome"
}
],
"platforms": [
{
"count": "1",
"id": "Macintosh"
}
]
},
"day": {
"shortUrlClicks": "0",
"longUrlClicks": "0"
},
"twoHours": {
"shortUrlClicks": "0",
"longUrlClicks": "0"
}
}
}
< /code>
} < /p>
В приведенном выше JSON, как мы можем получить существование аналитики -> Day -> страны? Если он есть, он попытается извлечь счет частичной страны. < /P>
Я пробую это с последних 5 часов без удачи.if(arr.analytics.day.countries !== undefined) {
function thingscount(arr, platf) {
var x = arr.analytics.day.countries.map(function(el) {
return (platf.indexOf(el.id) != -1) ? parseInt(el.count) : 0; });
var count = 0;
for (var i = 0; i < x.length; i++) count += x[i];
return count;
}
var one = thingscount(arr, ["US"]);
}else{
var one = 0;
}
< /code>
Приведенный выше код работает нормально, если есть страны в день, но иногда в моем JSON не будет платформ, в этом случае это дает мне < /p>
Uncaught TypeError: Cannot read property 'map' of undefined
< /code>
Мне нужен способ проверить, существуют ли платформы, если это будет подсчитать, если это не дает какого -то другого значения переменной. Но когда у него нет ключа, он показывает ошибку «неопределенного счета». < /P>
var month_inclicks = arr.analytics.month.countries.filter(function(el) { return el.id == "IN"; })[0].count;
Как мы можем установить значение по умолчанию, если ключ, который мы ищем, не существует?
Подробнее здесь:
https://stackoverflow.com/questions/327 ... -it-exists
1756596311
Anonymous
Вот мой код JSON. Я храню этот json в массиве. < /P> [code]{ "kind": "urlshortener#url", "id": "http://example.com/2FIrtF", "longUrl": "http://hike.com/?utm_source=facebook", "status": "OK", "created": "2015-09-22T13:45:53.645+00:00", "analytics": { "allTime": { "shortUrlClicks": "1", "longUrlClicks": "1", "referrers": [ { "count": "1", "id": "unknown" } ], "countries": [ { "count": "1", "id": "IN" } ], "browsers": [ { "count": "1", "id": "Chrome" } ], "platforms": [ { "count": "1", "id": "Macintosh" } ] }, "month": { "shortUrlClicks": "1", "longUrlClicks": "1", "referrers": [ { "count": "1", "id": "unknown" } ], "countries": [ { "count": "1", "id": "IN" } ], "browsers": [ { "count": "1", "id": "Chrome" } ], "platforms": [ { "count": "1", "id": "Macintosh" } ] }, "week": { "shortUrlClicks": "1", "longUrlClicks": "1", "referrers": [ { "count": "1", "id": "unknown" } ], "countries": [ { "count": "1", "id": "IN" } ], "browsers": [ { "count": "1", "id": "Chrome" } ], "platforms": [ { "count": "1", "id": "Macintosh" } ] }, "day": { "shortUrlClicks": "0", "longUrlClicks": "0" }, "twoHours": { "shortUrlClicks": "0", "longUrlClicks": "0" } }, "result": { "kind": "urlshortener#url", "id": "https://www.hike.com/?utm_source=facebook-pp&utm_medium=anvy&utm_campaign=naveen-2&utm_term=%2F&utm_content=100", "longUrl": "http://hike.com/?utm_source=facebook", "status": "OK", "created": "2015-09-22T13:45:53.645+00:00", "analytics": { "allTime": { "shortUrlClicks": "1", "longUrlClicks": "1", "referrers": [ { "count": "1", "id": "unknown" } ], "countries": [ { "count": "1", "id": "IN" } ], "browsers": [ { "count": "1", "id": "Chrome" } ], "platforms": [ { "count": "1", "id": "Macintosh" } ] }, "month": { "shortUrlClicks": "1", "longUrlClicks": "1", "referrers": [ { "count": "1", "id": "unknown" } ], "countries": [ { "count": "1", "id": "IN" } ], "browsers": [ { "count": "1", "id": "Chrome" } ], "platforms": [ { "count": "1", "id": "Macintosh" } ] }, "week": { "shortUrlClicks": "1", "longUrlClicks": "1", "referrers": [ { "count": "1", "id": "unknown" } ], "countries": [ { "count": "1", "id": "IN" } ], "browsers": [ { "count": "1", "id": "Chrome" } ], "platforms": [ { "count": "1", "id": "Macintosh" } ] }, "day": { "shortUrlClicks": "0", "longUrlClicks": "0" }, "twoHours": { "shortUrlClicks": "0", "longUrlClicks": "0" } } } < /code> } < /p> В приведенном выше JSON, как мы можем получить существование аналитики -> Day -> страны? Если он есть, он попытается извлечь счет частичной страны. < /P> Я пробую это с последних 5 часов без удачи.if(arr.analytics.day.countries !== undefined) { function thingscount(arr, platf) { var x = arr.analytics.day.countries.map(function(el) { return (platf.indexOf(el.id) != -1) ? parseInt(el.count) : 0; }); var count = 0; for (var i = 0; i < x.length; i++) count += x[i]; return count; } var one = thingscount(arr, ["US"]); }else{ var one = 0; } < /code> Приведенный выше код работает нормально, если есть страны в день, но иногда в моем JSON не будет платформ, в этом случае это дает мне < /p> Uncaught TypeError: Cannot read property 'map' of undefined < /code> Мне нужен способ проверить, существуют ли платформы, если это будет подсчитать, если это не дает какого -то другого значения переменной. Но когда у него нет ключа, он показывает ошибку «неопределенного счета». < /P> var month_inclicks = arr.analytics.month.countries.filter(function(el) { return el.id == "IN"; })[0].count;[/code] Как мы можем установить значение по умолчанию, если ключ, который мы ищем, не существует? Подробнее здесь: [url]https://stackoverflow.com/questions/32783754/how-to-read-the-json-array-with-javascript-to-get-the-value-if-it-exists[/url]