2016-12-09 2 views
0

У меня есть данные JSON, которые я извлекаю из https://status.mojang.com/check и сохраняю в переменной. Я по-прежнему новичок в JSON/JS, и я не могу найти ответы на Google.Проверьте данные json для значения, а затем получите его ключ

Код:

function checkMojang() { 
var mojangStatus = mojang.status(); 
mojangStatus.then(function (message) { 
    var response = JSON.parse(message); 
}) 
} 

данных Я использую можно увидеть по ссылке выше. Я пытаюсь проверить все данные в массиве json, посмотреть, есть ли какое-либо из значений «желтый» или «красный», и получить ключи для этих значений вместе с их проверенным значением, но не может понять, как это сделать.

+3

Каков ваш вопрос или с какой проблемой вы сталкиваетесь? –

+0

@VinodLouis мой бог, я полностью забыл написать в своей проблеме. Исправлена. –

+0

Как выглядит json? – Liam

ответ

1

вы можете использовать метод array.foreach() для выполнения предоставленной функции один раз для элемента массива и для ... для итерации над перечислимыми свойствами. Таким образом, вы можете проверить значение и получить ключи для значения "yellow" или "red"

response.forEach(function(element) { 
    for (k in element) { 
     if (element[k]=="red" or element[k]=="yellow") { 
      // k is the key 
     } 
    } 
}); 
+1

Я знаю, как выглядит Json, потому что я смотрю на ссылку в messand, а затем появляется Json. –

+0

извините, моя ошибка – Liam

1

Вы можете цикл через массив, а затем через свойства объекта и создать новый объект, используя цвета в качестве ключей

var response = [{"minecraft.net":"green"},{"session.minecraft.net":"red"},{"account.mojang.com":"green"},{"auth.mojang.com":"green"},{"skins.minecraft.net":"green"},{"authserver.mojang.com":"yellow"},{"sessionserver.mojang.com":"green"},{"api.mojang.com":"green"},{"textures.minecraft.net":"green"},{"mojang.com":"red"}]; 
 

 
var new_response = {}; 
 
response.forEach(function(obj){ 
 
    for (var prop in obj) { 
 
    if(obj.hasOwnProperty(prop)) { 
 
\t if(new_response[obj[prop]] == undefined) new_response[obj[prop]] = []; 
 
     new_response[obj[prop]].push(prop); 
 
    } 
 
    } 
 
}) 
 
console.log(new_response);

вы можете использовать объект для ваших нужд, как

new_response["red"] 

дает вам список всех ключей с красным значением.

0
function checkMojang() { 
    var mojangStatus = mojang.status(); 
    mojangStatus.then(function (message) { 
     var response = JSON.parse(message); 

     for (i = 0; i < response.length; i++) { // iterate over response array 
      var item = response[i];    // get item from array 
      var key = Object.keys(item)[0];  // get the key of the item 
      var value = item[key];    // get the value of the item 

      if (value === 'yellow' || value === 'red') { 
       // do something, like adding it to a list 
      } 
     } 
    }); 
} 
+1

Объяснение было бы лучше. Добавление только ответов на код ограничено – Liam

 Смежные вопросы

  • Нет связанных вопросов^_^