Object arrays
Overview
We will cover object arrays in this section. The main difference between primitive arrays and object arrays is that the elements in primitive arrays are serialized in a string separated by spaces, whereas object arrays cannot be serialized in the same way, because their elements have a more complex structure. Every element in an object array is represented as a separate object as you will see in the serialization section on this page.
Object arrays can also be unidimensional or multi-dimensional, just like primitive arrays. We will only show you the XML representation of a unidimensional object array, but you can try with your own multi-dimensional object arrays (they will follow the same idea shown in the N-D Primitive Arrays section). The code is provided in Java and C#.
The Product class
                This is the Product class, which has five fields: name
                of type string, price of type double, 
                grams of type int, registered of type boolean,
                and category of type char.
                
//Java
public class Product {
    private String name;
    private double price;
    private int grams;
    private boolean registered;
    private char category;
    //constructors and methods omitted
}
//C#
public class Product {
    private String name;
    private double price;
    private int grams;
    private bool registered;
    private char category;
    //constructors and methods omitted
}
                
                Serializing an array of Product objects to XML
                An array of three Product objects is created below.
                
//Java
Product[] products = new Product[]{new Product("Baked beans", 1.75, 250, true, 'B'),
                                   new Product("Basmati Rice", 3.89, 750, true, 'R'),
                                   new Product("White bread", 1.06, 300, false, 'H')};
//C#
Product[] products = new Product[]{new Product("Baked beans", 1.75, 250, true, 'B'),
                                   new Product("Basmati Rice", 3.89, 750, true, 'R'),
                                   new Product("White bread", 1.06, 300, false, 'H')};
                
                We use the save method of the Easy class to serialize our
                array of Product objects to XML, and store it to the specified file.
                
In Java you will require woxSerializer.jar and jdom.jar files in the classpath. In C# you will require woxSerializer.dll.
//Java String filename = "arrayProducts.xml"; Easy.save(products, filename);
//C# String filename = "arrayProducts.xml"; Easy.save(products, filename);
The array represented in XML is shown below. The array in Java and the array in C# have the same XML representation.
<object type="array" elementType="Product" length="3" id="0">
    <object type="Product" id="1">
        <field name="name" type="string" value="Baked beans" />
        <field name="price" type="double" value="1.75" />
        <field name="grams" type="int" value="250" />
        <field name="registered" type="boolean" value="true" />
        <field name="category" type="char" value="\u0042" />
    </object>
    <object type="Product" id="2">
        <field name="name" type="string" value="Basmati Rice" />
        <field name="price" type="double" value="3.89" />
        <field name="grams" type="int" value="750" />
        <field name="registered" type="boolean" value="true" />
        <field name="category" type="char" value="\u0052" />
    </object>
    <object type="Product" id="3">
        <field name="name" type="string" value="White bread" />
        <field name="price" type="double" value="1.06" />
        <field name="grams" type="int" value="300" />
        <field name="registered" type="boolean" value="false" />
        <field name="category" type="char" value="\u0048" />
    </object>
</object>
                
                The root is an object element, which is an array of three Product
                objects. Each product has its type, and id attributes, and its five 
                fields (children): name, price, grams, 
                registered, and category. Every field specifies its name, 
                type, and value attributes. The XML is simple and easy to understand.
                
De-serializing an array of Product objects back from XML
                We can use the load method of the Easy class de-seralize the array back from XML either to Java or C#.
                Note that WOX in Java does not require the Product class 
                to have a default constructor; but WOX in C# does.
                
//Java Product[] newProducts = (Product[])Easy.load(filename);
//C# Product[] newProducts = (Product[])Easy.load(filename);
                The array of Product objects has been reconstructed and you can now iterate to display its elements.
                
