diff --git a/reference/JSON/main.cpp b/reference/JSON/main.cpp index 9dd83cfbf..54ffd6ff7 100644 --- a/reference/JSON/main.cpp +++ b/reference/JSON/main.cpp @@ -4,7 +4,10 @@ using namespace Upp; CONSOLE_APP_MAIN { - Value js = ParseJSON(LoadFile(GetDataFile("test.json"))); + StdLogSetup(LOG_COUT|LOG_FILE); + + String s = LoadFile(GetDataFile("test.json")); + Value js = ParseJSON(s)[0]; DUMP(js); DUMP(js["age"]); Value phone_number = js["phoneNumber"]; @@ -19,9 +22,6 @@ CONSOLE_APP_MAIN DUMP(AsJSON(js)); LOG("- Partial parsing"); - ValueArray va; - va << js << js << js; - String s = AsJSON(va); DUMP(s); CParser p2(s); try { diff --git a/reference/JSON/test.json b/reference/JSON/test.json index 9e4aa5806..b79ed7fdb 100644 --- a/reference/JSON/test.json +++ b/reference/JSON/test.json @@ -1,3 +1,4 @@ +[ { "firstName": "John", "lastName" : "Smith", @@ -25,12 +26,12 @@ "falsetest" : false }, { - "firstName": "John", - "lastName" : "Smith", - "age" : 25, + "firstName": "Peter", + "lastName" : "Bush", + "age" : 33, "address" : { - "streetAddress": "21 2nd Street", + "streetAddress": "25 5th Street", "city" : "New York", "state" : "NY", "postalCode" : "10021" @@ -39,11 +40,11 @@ [ { "type" : "home", - "number": "212 555-1234" + "number": "212 555-3421" }, { "type" : "fax", - "number": "646 555-4567" + "number": "646 555-8765" } ], "nulltest" : null, @@ -51,12 +52,12 @@ "falsetest" : false }, { - "firstName": "John", - "lastName" : "Smith", - "age" : 25, + "firstName": "Alice", + "lastName" : "Banks", + "age" : 55, "address" : { - "streetAddress": "21 2nd Street", + "streetAddress": "11 3rd Street", "city" : "New York", "state" : "NY", "postalCode" : "10021" @@ -65,15 +66,15 @@ [ { "type" : "home", - "number": "212 555-1234" + "number": "212 523-1234" }, { "type" : "fax", - "number": "646 555-4567" + "number": "646 532-4567" } ], "nulltest" : null, "truetest" : true, "falsetest" : false - } -] \ No newline at end of file +} +] diff --git a/reference/Jsonize/Jsonize.cpp b/reference/Jsonize/Jsonize.cpp new file mode 100644 index 000000000..842bbf21f --- /dev/null +++ b/reference/Jsonize/Jsonize.cpp @@ -0,0 +1,59 @@ +#include + +using namespace Upp; + +struct Data { + Size sz; + String text; + Vector vector; + VectorMap score; + VectorMap map; + ArrayMap sizemap; + double number; + bool option; + + void Jsonize(JsonIO& json); +}; + +void Data::Jsonize(JsonIO& json) +{ + json + ("Dimension", sz) + ("text", text) + ("vector", vector) + ("Scores", score) + ("map", map) + ("sizemap", sizemap) + ("number", number) + ("option", option) + ; +} + +CONSOLE_APP_MAIN +{ + StdLogSetup(LOG_COUT|LOG_FILE); + + Data x; + x.sz.cx = 10; + x.sz.cy = 20; + x.text = "Some text"; + x.vector.Add(Size(1, 2)); + x.vector.Add(Size(3, 4)); + x.score.Add("peter", 100); + x.score.Add("john", 10); + x.score.Add("frank", 20); + x.map.Add("keytext", "valuetext"); + x.map.Add("key1text", "value1text"); + x.sizemap.Add(1, Size(2, 3)); + x.sizemap.Add(10, Size(20, 30)); + x.number = -1.235e-30; + x.option = true; + + String json = StoreAsJson(x, true); + + LOG(json); + LOG("====================="); + Data y; + DUMP(LoadFromJson(y, json)); + LOG(StoreAsJson(y)); +} diff --git a/reference/Jsonize/Jsonize.upp b/reference/Jsonize/Jsonize.upp new file mode 100644 index 000000000..8f54e5217 --- /dev/null +++ b/reference/Jsonize/Jsonize.upp @@ -0,0 +1,9 @@ +uses + Core; + +file + Jsonize.cpp; + +mainconfig + "" = "SSE2"; + diff --git a/reference/Jsonize/init b/reference/Jsonize/init new file mode 100644 index 000000000..66c514c49 --- /dev/null +++ b/reference/Jsonize/init @@ -0,0 +1,4 @@ +#ifndef _Jsonize_icpp_init_stub +#define _Jsonize_icpp_init_stub +#include "Core/init" +#endif