Извлечение таблицы JSON из строкового элемента JSON - PullRequest
0 голосов
/ 19 декабря 2018

Я получаю этот JSON в ответ от сервера:

{
   "tab":[
      "[[\"2018\",11,\"19\",\"16\",\"13\"],null,null,null,null,null,\"40\"]",
      "[[\"2018\",11,\"19\",\"16\",\"19\"],null,null,null,null,null,\"56\"]",
      "[[\"2018\",11,\"19\",\"16\",\"21\"],null,null,null,null,\"57\",null]"
   ]
}

Я знаю, что могу получить первый элемент таблицы tab, возвращенный с помощью $.tab[1].Возвращаемый элемент - это строка, содержащая таблицу. Первым элементом этой таблицы является другая таблица, содержащая дату.Вопрос в том, какое выражение JSON Path следует использовать для извлечения значения года из внутренней таблицы или одного из этих чисел в конце (40, 56, 57)?

1 Ответ

0 голосов
/ 19 декабря 2018

Я не уверен, что вы имеете в виду, когда говорите, что можете получить первый элемент с помощью $.tab[1].Вы используете JQuery?Тем не менее, это не имеет никакого смысла.В любом случае, вы можете анализировать эти внутренние таблицы и обращаться к ним как к массивам:

var results = {
   "tab":[
      "[[\"2018\",11,\"19\",\"16\",\"13\"],null,null,null,null,null,\"40\"]",
      "[[\"2018\",11,\"19\",\"16\",\"19\"],null,null,null,null,null,\"56\"]",
      "[[\"2018\",11,\"19\",\"16\",\"21\"],null,null,null,null,\"57\",null]"
   ]
};

// you can refactor this as a method for more convenient usage, this is just a demo
var row = JSON.parse(results.tab[0]);

// now you just have a multi-dimensional array, use it as normal
console.log(row[0][0]); //year
console.log(row[6]); //number
...