Как анализировать многомерные данные JSON, у которых нет ключа, через Javascript? [Дубликат]

1

У меня есть действительные данные JSON как:

{
 "bitcoin": [
    "-0.47",
    "-0.46",
    "-0.42"
 ],
 "maker": [
    "8.29",
    "8.29",
    "6.89"
 ]
}

Как я могу получить значения из таких данных, где нет ключа?

Изменить: с помощью @kolzar и @FZs я просто справился с этим следующим кодом:

for (var key in obj) {
  console.log(key + obj[key]);
}
  • 0
    так вы просто хотите, чтобы массивы в одном большом массиве?
  • 0
    obj.bitcoin[index]
Показать ещё 2 комментария
Теги:

5 ответов

1

var obj = {
 "bitcoin": [
    "-0.47",
    "-0.46",
    "-0.42"
 ],
 "maker": [
    "8.29",
    "8.29",
    "6.89"
 ]
}

for (var key in obj) {
  for (var i = 0; i< obj[key].length; i++) {
    console.log(obj[key][i]);
  }
}

Я не знаю, чего ты хочешь. Скажи мне.

  • 0
    Я хочу создать массив (скажем, bitcoin ) и добавить в него значения, поэтому всякий раз, когда я вызываю этот массив, я могу получить его значения.
1

В массивах ([...]) ключи - это числа.
В JS вы можете получить доступ к свойствам двумя способами:

  • container[key_as_expression] или
  • container.key_as_identifier

Поскольку идентификаторы JS не позволяют идентификатору начинаться с цифры, цифровые ключи доступны только через первый способ:

data={
 "bitcoin": [
    "-0.47",
    "-0.46",
    "-0.42"
 ],
 "maker": [
    "8.29",
    "8.29",
    "6.89"
 ]
}

console.log(data.bitcoin[0]) //"-0.47"
console.log(data.bitcoin[1]) //"-0.46"

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

n=0
data={
 "bitcoin": [
    "-0.47",
    "-0.46",
    "-0.42"
 ],
 "maker": [
    "8.29",
    "8.29",
    "6.89"
 ]
}

console.log(data.bitcoin[n]) //"-0.47"
console.log(data.bitcoin[n+1]) //"-0.46"

И есть много петель, которые могут вам помочь:

  • for - наиболее часто используемый цикл. Чтобы выполнить что-то на всех элементах массива:

    data=[1,2,3,"hello","world"]
    
    for(let i=0;i<data.length;i++){
      console.log(i,data[i])
    }
  • for of - более простой синтаксис, но ключи недоступны. Пример:

    data=[1,2,3,"hello","world"]
    
    for(let x of data){
      console.log(x)
    }
  • array.forEach - array.forEach функцию на всех элементах массива:

    data=[1,2,3,"hello","world"]
    
    data.forEach(function(x,i){console.log(i,x)})

И еще много похожих вариантов!

  • 0
    Спасибо, что указал мне направление. но у меня есть сотни таких массивов с множеством элементов внутри, и я не могу получить к ним статический доступ.
  • 0
    @HaseebHassy Я отредактировал свой ответ, чтобы быть более полезным. Взгляни на это!
0

bitcoin и maker - это массивы, поэтому у предметов внутри нет ключа.

const obj = {
 "bitcoin": [
    "-0.47",
    "-0.46",
    "-0.42"
 ],
 "maker": [
    "8.29",
    "8.29",
    "6.89"
 ]
}

Чтобы получить значения:

var bitcoinItems = obj.bitcoin;
var firstBitcoin = bitcoinItems[0];
  • 0
    Я не могу использовать этот подход, поскольку у меня есть сотни таких массивов с множеством элементов внутри. Спасибо за ответ, независимо.
0

Ваши данные - это Dictionary<string,string[]> вы должны иметь возможность проанализировать его как таковой.

0

Вы можете получить доступ с индексами массива

Попробуй это:

obj.bitcoin[0] = "-0.47"
obj.bitcoin[1] = "-0.46"
obj.maker[2] = "6.89"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню