public object Convert(int operation, string packet) { object _packet = null; CharacterOperation key = (CharacterOperation)operation; JsonReaderSettings settings = new JsonReaderSettings(); settings.AddTypeConverter (new VectorConverter()); settings.AddTypeConverter (new QuaternionConverter()); JsonReader jsonReader = new JsonReader(packet, settings); switch(key) { case CharacterOperation.GROUNDCLICK: _packet = jsonReader.Deserialize<GroundClick>(); break; case CharacterOperation.INSTANTIATE: _packet = jsonReader.Deserialize<InstantiateChar>(); break; case CharacterOperation.DESTROY: _packet = jsonReader.Deserialize<DestroyChar>(); break; default: break; } return _packet; }
public object Convert(int operation, string packet) { object _packet = null; CharacterOperation key = (CharacterOperation)operation; JsonReaderSettings settings = new JsonReaderSettings(); settings.AddTypeConverter(new VectorConverter()); settings.AddTypeConverter(new QuaternionConverter()); JsonReader jsonReader = new JsonReader(packet, settings); switch (key) { case CharacterOperation.GROUNDCLICK: _packet = jsonReader.Deserialize <GroundClick>(); break; case CharacterOperation.INSTANTIATE: _packet = jsonReader.Deserialize <InstantiateChar>(); break; case CharacterOperation.DESTROY: _packet = jsonReader.Deserialize <DestroyChar>(); break; default: break; } return(_packet); }
static JsonBase() { writesettings = new JsonWriterSettings(); writesettings.AddTypeConverter(new Vector2Converter()); writesettings.AddTypeConverter(new Vector3Converter()); writesettings.AddTypeConverter(new ColorConverter()); readersettings = new JsonReaderSettings(); readersettings.AddTypeConverter(new Vector2Converter()); readersettings.AddTypeConverter(new Vector3Converter()); readersettings.AddTypeConverter(new ColorConverter()); }
public static T Deserialize <T>(string data) { data.Trim(); JsonReaderSettings settings = new JsonReaderSettings(); settings.AddTypeConverter(new VectorConverter()); settings.AddTypeConverter(new ColorConverter()); settings.AddTypeConverter(new QuaternionConverter()); JsonReader reader = new JsonReader(data, settings); var bi = reader.Deserialize <T>(); return(bi); }
private void loadcb(string datatxt) { JsonReaderSettings setting = new JsonReaderSettings(); setting.AddTypeConverter(new ColorConv()); JsonReader reader = new JsonReader(datatxt, setting); Debug.Log("+++ Deserializing +++"); listD = reader.Deserialize <gameLevelD> (); Debug.Log(datatxt); }
private static void init() { if (!init_) { rsettings_.AddTypeConverter(color); wsettings_.AddTypeConverter(color); init_ = true; settings.PrettyPrint = false; settings.AddTypeConverter(color); } }
public static T reader <T>(string json) { if (affixConverter_ == null) { affixConverter_ = new JsonData.AffixConverter(); rsettings_.AddTypeConverter(affixConverter_); wsettings_.AddTypeConverter(affixConverter_); } JsonReader reader = new JsonReader(json, rsettings_); return((T)reader.Deserialize(typeof(T))); }
public bool OpenDeserialize(byte[] bytes) { readerSettings = new JsonReaderSettings(); readerSettings.AddTypeConverter(new VectorConverter()); readerSettings.AddTypeConverter(new BoundsConverter()); readerSettings.AddTypeConverter(new LayerMaskConverter()); readerSettings.AddTypeConverter(new MatrixConverter()); readerSettings.AddTypeConverter(new GuidConverter()); readerSettings.AddTypeConverter(new UnityObjectConverter()); str = new MemoryStream(); str.Write(bytes, 0, bytes.Length); str.Position = 0; try { zip = ZipFile.Read(str); } catch (ZipException e) { //Catches exceptions when an invalid zip file is found Debug.LogWarning("Caught exception when loading from zip\n" + e); str.Close(); return(false); } meta = DeserializeMeta(zip["meta" + jsonExt]); if (meta.version > AstarPath.Version) { Debug.LogWarning("Trying to load data from a newer version of the A* Pathfinding Project\nCurrent version: " + AstarPath.Version + " Data version: " + meta.version); } else if (meta.version < AstarPath.Version) { Debug.LogWarning("Trying to load data from an older version of the A* Pathfinding Project\nCurrent version: " + AstarPath.Version + " Data version: " + meta.version); } return(true); }
public bool OpenDeserialize(byte[] bytes) { readerSettings = new JsonReaderSettings(); readerSettings.AddTypeConverter(new VectorConverter()); readerSettings.AddTypeConverter(new BoundsConverter()); readerSettings.AddTypeConverter(new LayerMaskConverter()); readerSettings.AddTypeConverter(new MatrixConverter()); readerSettings.AddTypeConverter(new GuidConverter()); readerSettings.AddTypeConverter(new UnityObjectConverter()); str = new MemoryStream(); str.Write(bytes, 0, bytes.Length); str.Position = 0; try { zip = ZipFile.Read(str); } catch (ZipException e) { //Catches exceptions when an invalid zip file is found Debug.LogWarning("Caught exception when loading from zip\n" + e); str.Close(); return(false); } meta = DeserializeMeta(zip["meta" + jsonExt]); if (meta.version > AstarPath.Version) { Debug.LogWarning("Trying to load data from a newer version of the A* Pathfinding Project\nCurrent version: " + AstarPath.Version + " Data version: " + meta.version); } else if (meta.version < AstarPath.Version) { Debug.LogWarning("Trying to load data from an older version of the A* Pathfinding Project\nCurrent version: " + AstarPath.Version + " Data version: " + meta.version + "\nThis is usually fine, it just means you have upgraded to a new version.\nHowever node data (not settings) can get corrupted between versions, so it is recommended" + "to recalculate any caches (those for faster startup) and resave any files. Even if it seems to load fine, it might cause subtle bugs.\n"); } return(true); }
public void ShouldFillObject_FromAStarWACKTest2SerializedJson_GuidCorrectly() { var data = "{\"guid\":{\"value\":\"462c822a5bde4f2a-d776405ec65de86f\"},\"aspectRatio\":1,\"rotation\":{\"x\":0,\"y\":0,\"z\":0},\"center\":{\"x\":0,\"y\":-0.1,\"z\":0},\"unclampedSize\":{\"x\":100,\"y\":100},\"nodeSize\":1,\"collision\":{\"type\":\"Capsule\",\"diameter\":1,\"height\":2,\"collisionOffset\":0,\"rayDirection\":\"Both\",\"mask\":{\"value\":512},\"heightMask\":{\"value\":256},\"fromHeight\":100,\"thickRaycast\":false,\"thickRaycastDiameter\":1,\"up\":{\"x\":0,\"y\":1,\"z\":0},\"collisionCheck\":true,\"heightCheck\":true,\"unwalkableWhenNoGround\":true,\"use2D\":false},\"maxClimb\":0.4,\"maxClimbAxis\":1,\"maxSlope\":90,\"erodeIterations\":0,\"erosionUseTags\":false,\"erosionFirstTag\":1,\"autoLinkGrids\":false,\"autoLinkDistLimit\":10,\"neighbours\":\"Eight\",\"cutCorners\":true,\"penaltyPositionOffset\":0,\"penaltyPosition\":false,\"penaltyPositionFactor\":1,\"penaltyAngle\":false,\"penaltyAngleFactor\":100,\"textureData\":{\"enabled\":false,\"source\":null,\"factors\":[0,0,0],\"channels\":[\"None\",\"None\",\"None\"]},\"initialPenalty\":0,\"open\":true,\"name\":\"Grid Graph\",\"drawGizmos\":true,\"infoScreenOpen\":false,\"matrix\":{\"values\":[1,0,0,0,0,1,0,0,0,0,1,0,-50,-0.1,-50,1]}}"; var target = new GridGraph(); var readerSettings = new JsonReaderSettings(); readerSettings.AddTypeConverter(new GuidConverter()); var serializer = new Pathfinding.Serialization.JsonFx.JsonReader(data, readerSettings); serializer.PopulateObject(target); var expected = new Guid("462c822a5bde4f2a-d776405ec65de86f"); Assert.AreEqual(expected, target.guid); }
/// <summary> /// Initializes the Json Object Conversion /// </summary> public static void initJsonObjectConversion() { if (isInitialized) { return; } jsonReaderSettings = new JsonReaderSettings(); jsonWriterSettings = new JsonWriterSettings(); jsonWriterSettings.PrettyPrint = false; jsonConverters = createJsonConverters(); foreach (JsonConverter jsonConverter in jsonConverters) { jsonReaderSettings.AddTypeConverter(jsonConverter); jsonWriterSettings.AddTypeConverter(jsonConverter); } isInitialized = true; }
public bool OpenDeserialize(byte[] bytes) { #if !ASTAR_NO_JSON // Add some converters so that we can deserialize Unity builtin types readerSettings = new JsonReaderSettings(); readerSettings.AddTypeConverter(new VectorConverter()); readerSettings.AddTypeConverter(new BoundsConverter()); readerSettings.AddTypeConverter(new LayerMaskConverter()); readerSettings.AddTypeConverter(new MatrixConverter()); readerSettings.AddTypeConverter(new GuidConverter()); readerSettings.AddTypeConverter(new UnityObjectConverter()); #endif // Copy the bytes to a stream zipStream = new MemoryStream(); zipStream.Write(bytes, 0, bytes.Length); zipStream.Position = 0; try { zip = ZipFile.Read(zipStream); } catch (Exception e) { // Catches exceptions when an invalid zip file is found Debug.LogError("Caught exception when loading from zip\n" + e); zipStream.Dispose(); return(false); } meta = DeserializeMeta(zip["meta" + jsonExt]); if (FullyDefinedVersion(meta.version) > FullyDefinedVersion(AstarPath.Version)) { Debug.LogWarning("Trying to load data from a newer version of the A* Pathfinding Project\nCurrent version: " + AstarPath.Version + " Data version: " + meta.version + "\nThis is usually fine as the stored data is usually backwards and forwards compatible." + "\nHowever node data (not settings) can get corrupted between versions (even though I try my best to keep compatibility), so it is recommended " + "to recalculate any caches (those for faster startup) and resave any files. Even if it seems to load fine, it might cause subtle bugs.\n"); } else if (FullyDefinedVersion(meta.version) < FullyDefinedVersion(AstarPath.Version)) { Debug.LogWarning("Trying to load data from an older version of the A* Pathfinding Project\nCurrent version: " + AstarPath.Version + " Data version: " + meta.version + "\nThis is usually fine, it just means you have upgraded to a new version." + "\nHowever node data (not settings) can get corrupted between versions (even though I try my best to keep compatibility), so it is recommended " + "to recalculate any caches (those for faster startup) and resave any files. Even if it seems to load fine, it might cause subtle bugs.\n"); } return(true); }
void PrintResults(string rawJson) { // Raw output: /*DB.Log(DC.Log("******** raw string from Twitter ********")); * DB.Log(DC.Log(rawJson)); * * * // Turn the JSON into C# objects * var search = JsonReader.Deserialize<TwitterSearchResults>(rawJson); * * * // iterate through the array of results; * DB.Log(DC.Log("******** search results ********")); * * * foreach (var tweet in search.results) { * DB.Log(DC.Log(tweet.from_user_name + " : " + tweet.text)); * } * * DB.Log(DC.Log("******** serialize an entity ********")); * * JsonWriterSettings settings = new JsonWriterSettings(); * settings.PrettyPrint = true; * * System.Text.StringBuilder output = new System.Text.StringBuilder(); * * JsonWriter writer = new JsonWriter (output,settings); * writer.Write (search.results[0]); * * // this turns a C# object into a JSON string. * string json = output.ToString();//JsonWriter.Serialize(); * * DB.Log(DC.Log(json));*/ for (int i = 0; i < 10; i++) { System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch(); watch.Start(); System.Text.StringBuilder output = new System.Text.StringBuilder(); Debug.Log("+++ Serializing +++"); JsonWriterSettings settings = new JsonWriterSettings(); settings.PrettyPrint = false; settings.AddTypeConverter(new VectorConverter()); TestClass test = new TestClass(); test.vec.y = 128.513589999F; JsonWriter writer = new JsonWriter(output, settings); Debug.Log("+++ Writing +++"); writer.Write(test); if (i == 0) { Debug.Log(output.ToString()); } Debug.Log("+++ Deserializing - Init +++"); JsonReaderSettings settings2 = new JsonReaderSettings(); settings2.AddTypeConverter(new VectorConverter()); JsonReader reader = new JsonReader(output.ToString(), settings2); Debug.Log("+++ Deserializing +++"); TestClass deserialized = reader.Deserialize <TestClass>(); watch.Stop(); Debug.Log((watch.ElapsedTicks * 0.0001).ToString("0.00")); Debug.Log(deserialized.vec.y.ToString("r")); } }