Jump to content
  • 0

Получение данных из json


daniil242141
 Share

Question

В общем получил я вот таких данные 

"lifeTimeStats": [
    {
      "key": "Top 3",
      "value": "1660"
    },
    {
      "key": "Top 5s",
      "value": "1471"
    },
    {
      "key": "Top 3s",
      "value": "606"
    },
    {
      "key": "Top 6s",
      "value": "738"
    },
    {
      "key": "Top 12s",
      "value": "1725"
    },
    {
      "key": "Top 25s",
      "value": "1989"
    },
    {
      "key": "Score",
      "value": "3,049,045"
    },

Из низ мне нужен только score и top 3. Мучаюсь уже какой день, не могу понять как мне их вывести в консоль? Пытался так 

console.log ( ' Общий - ' + (cart.stats.lifeTimeStats[1].value) );

не вышло. Пробовал заколхозить, но тоже не вышло, видимо знаний не хватило, только учусь...

               if ((key) = 'Score')
                console.log (value);

Надеюсь на вашу помощь

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Т.е. в итоге у вас получается объект cart в котором есть ключ lifeTimeStats и вам нужно найти и вывести значения value у объектов со значениями Top 3 и Score ?

Если да то вот код:

for (var i = 0; i < cart.lifeTimeStats.length; i++){
  for (var k in cart.lifeTimeStats[i]){
    if(cart.lifeTimeStats[i][k] == "Top 3" || cart.lifeTimeStats[i][k] == "Score"){
      console.log(cart.lifeTimeStats[i].value)
    } 
  }
}

 

  • Like 1
Link to comment
Share on other sites

  • 0
3 часа назад, AlexZaw сказал:

Т.е. в итоге у вас получается объект cart в котором есть ключ lifeTimeStats и вам нужно найти и вывести значения value у объектов со значениями Top 3 и Score ?

Если да то вот код:


for (var i = 0; i < cart.lifeTimeStats.length; i++){
  for (var k in cart.lifeTimeStats[i]){
    if(cart.lifeTimeStats[i][k] == "Top 3" || cart.lifeTimeStats[i][k] == "Score"){
      console.log(cart.lifeTimeStats[i].value)
    } 
  }
}

 

Спасибо, действительно работает, пока что не понимаю как, но думаю разберусь

Link to comment
Share on other sites

  • 0

Смотрите, в объекте cart по ключу lifeTimeStats  находится массив с объектами.

Что-бы найти интересующий нас объект нужно перебрать их все (что мы и делаем в первом цикле) и в каждом из них проверить есть ли свойство с нужным нам значением, что мы и делаем с помощью внутреннего цикла с if 

Ну и в конце, если нашелся нужный нам объект, выводим у него значение ключа value

Link to comment
Share on other sites

  • 0
3 часа назад, AlexZaw сказал:

Смотрите, в объекте cart по ключу lifeTimeStats  находится массив с объектами.

Что-бы найти интересующий нас объект нужно перебрать их все (что мы и делаем в первом цикле) и в каждом из них проверить есть ли свойство с нужным нам значением, что мы и делаем с помощью внутреннего цикла с if 

Ну и в конце, если нашелся нужный нам объект, выводим у него значение ключа value

Еще раз спасибо!

3 часа назад, AlexZaw сказал:

Смотрите, в объекте cart по ключу lifeTimeStats  находится массив с объектами.

Что-бы найти интересующий нас объект нужно перебрать их все (что мы и делаем в первом цикле) и в каждом из них проверить есть ли свойство с нужным нам значением, что мы и делаем с помощью внутреннего цикла с if 

Ну и в конце, если нашелся нужный нам объект, выводим у него значение ключа value

            for (var i = 0; i < cart.lifeTimeStats.length; i++){
              for (var k in cart.lifeTimeStats[i]){
                if(cart.lifeTimeStats[i][k] == "Matches Played" || cart.lifeTimeStats[i][k] == "Win%" || cart.lifeTimeStats[i][k] == "K/d"){
                  message.reply(cart.lifeTimeStats[i].value)
                } 

Немного адаптировал ваш код под себя. Скрипт выводит значения один за одним, можете подсказать как сделать так что бы он выводил допустим "Матчей сыграно - N". Немного не понимаю как это сделать в этом коде. Заранее большое спасибо!

Link to comment
Share on other sites

  • 0

Придется разнести условия как то так:

for (var i = 0; i < cart.lifeTimeStats.length; i++){
	for (var k in cart.lifeTimeStats[i]){
		if(cart.lifeTimeStats[i][k] == "Matches Played"){
			message.reply("Матчей сыграно: " + cart.lifeTimeStats[i].value)
        }else if (cart.lifeTimeStats[i][k] == "Win%"){
			message.reply("Процент побед: " + cart.lifeTimeStats[i].value)
        }else if(cart.lifeTimeStats[i][k] == "K/d"){
			message.reply("Убийств/смертей: " + cart.lifeTimeStats[i].value)
		}
	}
}

 

Link to comment
Share on other sites

  • 0
3 часа назад, AlexZaw сказал:

Придется разнести условия как то так:


for (var i = 0; i < cart.lifeTimeStats.length; i++){
	for (var k in cart.lifeTimeStats[i]){
		if(cart.lifeTimeStats[i][k] == "Matches Played"){
			message.reply("Матчей сыграно: " + cart.lifeTimeStats[i].value)
        }else if (cart.lifeTimeStats[i][k] == "Win%"){
			message.reply("Процент побед: " + cart.lifeTimeStats[i].value)
        }else if(cart.lifeTimeStats[i][k] == "K/d"){
			message.reply("Убийств/смертей: " + cart.lifeTimeStats[i].value)
		}
	}
}

 

А вот как, понял, спасибо еще раз большое!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy