I found out that get_property not work if trying to use it setup()
So i moved it to loop()
And here is my example code how i was able to iterate objects of array.
int pin=0;
pson data;
if (thing.get_property("DeviceList", data)) {
if (data.is_object()) {
pson_array my_array = (pson_array)data["devices"];
if (my_array.size() > 0) {
pson_container<pson>::iterator iterator = my_array.begin();
bool pson_from_Iterator = iterator.valid();
while (pson_from_Iterator) {
data = iterator.item();
if (data.is_object()) {
pin= (int)data["pin"];
}
else {
Serial.println("Array item wasn't object");
}
if (iterator.has_next()) {
pson_from_Iterator = iterator.next();
}
else {
Serial.println("All objects iterated");
pson_from_Iterator = false;
}
}
}
else Serial.println("Array was empty");
}
else {
Serial.println("Device list is not object");
}
}
else {
Serial.print("No response for:");
Serial.println("DeviceList");
}