У меня есть этот json-файл.Почему нет as3, передающего мои массивы в JSON?
{
"BnUs5hQZkJWLU9jGlpx9Ifq5ocf2" : {
"bio" : "Your bio!\r",
"birthday" : "Date of Birth?",
"location" : "Location?",
"markerBorder" : 1.5542403222038021E7,
"markerColor" : 8222122.31461079,
"name" : "NamesName?",
"profilePrivacy" : 2,
"sex" : "Gender?",
"privacy" : 2,
"points" : {
"-Kc7lfJk3XbPlNyk-wIR" : {
"address" : "dsfsdfasfsfd",
"description" : "status/desription",
"latitude" : 35.2,
"longitude" : -80.7,
"mediaTargets" : "none",
"pub" : false,
"timestamp" : 1486205926658
},
"aaa" : "aaa"
}
}
}
Эти случайные строки характеристик автоматически создаются, когда я использую firebase.
В этом случае может быть больше «очков», за которые мне придется принять во внимание. Поэтому, когда я ссылаюсь на точки, я должен разговаривать с массивом, поскольку он содержит как "-Kc7lfJk3XbPlNyk-wIR"
(массив), так и "aaa"
(строка).
Так почему я получаю ошибку типа при попытке конвертировать parsedObject.points
в массив?
var parsedObject:Object = JSON.parse(e.target.data);
var multiArray:Array = parsedObject.points;
TypeError: Error #1034: Type Coercion failed: cannot convert [email protected] to Array.
Я в основном пытаются делать противоположное тому, что this guy делает.
Edit: я вижу в the notes, что она только обрабатывает строки, числа и логические значения ..
мне удалось обойти его, добавив «родительский» узел в объекте, который дублирует то же значение, имя всего узла, поэтому я могу ссылаться на него в скрипте. Есть ли лучший способ сделать это? Кажется довольно избыточным.
var parsedObject:Object = JSON.parse(e.target.data);
var myPoints:Object = parsedObject["points"];
//Get all trek names
for each (var key:Object in myPoints)
{
trace("Key = " + key.parent);
trace(parsedObject.treks[key.parent].latitude) //Returns -80.7
}