You should keep your constructors in your ValueObjects empty or else you might overwrite received data accidentally.
Sample
class PersonVO
{
public var books:Array; // of BookVO
//Constructor
function PersonVO()
{
books = new Array();
}
...
}
When you get the data from the server the constructor is called after all of the values are set, so you'll overwrite the received data.
Read more here