         array  = decoder.readArray("array")!
         dict   = decoder.readDictionary("dict")!
         sub    = decoder.readValue("sub")!
+        date   = decoder.readValue("date")!
     }
 
     func toJson() -> Json {


    func testJsonEncode() {
        let testObject = TestStruct()
        let expected = "{\"int\":123.0,\"bool\":true,\"null\":null," +
        "\"array\":[\"foo\"],\"dict\":{\"foo\":\"bar\"}," +
        "\"float\":123.0,\"string\":\"foo\",\"sub\":{\"foo\":\"bar\"}}"
        let encoded = testObject.toJson().toString()
        XCTAssert(encoded == expected, "Invalid JSON: \(encoded)")
    }

            "array":  Json.fromArray(array),
            "dict":   Json.fromDictionary(dict),
            "sub":    sub.toJson(),
            "null":   Json.Null,
            "date":   date.toJson()
        ]
        return Json.Object(json)
    }

