JSON: что делать, если ключ - это число?
Добрый день!
Получаю от оборудования строку:
{"status":"ok","registrators":{"467375": {"id":"467375","last_value":"32.6650","last_value_timestamp":"1550595600,"values":[{"timestamp":"1550534400","value":"32.5770"},{"timestamp":"1550361600","value":"32.3567"},{"timestamp":"1550361600","value":"32.3567"},{"timestamp":"1550365200","value":"32.3621"},{"timestamp":"1550368800","value":"32.3621"},{"timestamp":"1550372400","value":"32.3621"}
....
Конвертирую в JSON.
Вопрос в следующем: как получить доступ к массиву значений?
В строке адреса переменной JSONObject.registrators.467375.last_value появляется числовой ключ. В строке он, конечно же, текстовый, но как его правильно указать в строке адреса переменной не понимаю.
Customer support service by UserEcho
Добрый день.
Вы хотите преобразовать тип? Тогда Number(value).
Если имелось в виду что-то иное, то приложите кусок кода, с пояснениями, что нужно получить.
Нет. Вопрос в другом.
Мне нужно получить доступ к массиву values внутри JSON объекта (текст объекта JSON см выше)
"Адрес" этого массива в объекте JSON выглядит так:
JSONObject.registrators.467375.values[0]
Третий ключ в этом адресе - это число 467375, которое внутри объекта JSON хранится, как текст, но написать в скрипте просто JSONObject.registrators.467375.values[0] я не могу, т.к. движок считает, что я указал неверный ключ, т.е. он воспринимает 467375, как число, а не переменную.
Вопрос: как правильно указать путь к объекту JSON, если один из ключей - это число?
Так не могу: JSONObject.registrators.467375.values[0]
Так тоже не могу: JSONObject.registrators.'467375'.values[0]
Как?
Добрый день.
Вероятно вы хотите получить что-то подобное:
var personData = '{"467375":"Иван","age":37,"mother":{"name":"Ольга","age":58},"children":["Маша","Игорь","Таня"],"married": true,"dog": null}';
var person = JSON.Parse(personData);
IR.Log(person["467375"]); // Иван
Примерно так. А что если немного изменить данные и приблизить к моим. Например:
var personData = '{"Name":"Иван","age":37,"mother":{"3753":"Ольга","age":58},"children":["Маша","Игорь","Таня"],"married": true,"dog": null}';
var person = JSON.Parse(personData);
Как в этом случае получить "Ольга"?
IR.Log(person.mother.["3753"]); // Ольга?
var personData = '{"Name":"Иван","age":37,"mother":{"3753":"Ольга","age":58},"children":["Маша","Игорь","Таня"],"married": true,"dog": null}';
var person = JSON.Parse(personData);
IR.Log(person.mother["3753"]); // Ольга