sdsandbox-rl-scripts/Scripts/SocketIO/JSONObject/Editor/JSONChecker.cs

52 lines
1.3 KiB
C#
Executable File

//#define PERFTEST //For testing performance of parse/stringify. Turn on editor profiling to see how we're doing
using UnityEngine;
using UnityEditor;
public class JSONChecker : EditorWindow {
string JSON = @"{
""TestObject"": {
""SomeText"": ""Blah"",
""SomeObject"": {
""SomeNumber"": 42,
""SomeBool"": true,
""SomeNull"": null
},
""SomeEmptyObject"": { },
""SomeEmptyArray"": [ ],
""EmbeddedObject"": ""{\""field\"":\""Value with \\\""escaped quotes\\\""\""}""
}
}"; //dat string literal...
JSONObject j;
[MenuItem("Window/JSONChecker")]
static void Init() {
GetWindow(typeof(JSONChecker));
}
void OnGUI() {
JSON = EditorGUILayout.TextArea(JSON);
GUI.enabled = !string.IsNullOrEmpty(JSON);
if(GUILayout.Button("Check JSON")) {
#if PERFTEST
Profiler.BeginSample("JSONParse");
j = JSONObject.Create(JSON);
Profiler.EndSample();
Profiler.BeginSample("JSONStringify");
j.ToString(true);
Profiler.EndSample();
#else
j = JSONObject.Create(JSON);
#endif
Debug.Log(j.ToString(true));
}
if(j) {
//Debug.Log(System.GC.GetTotalMemory(false) + "");
if(j.type == JSONObject.Type.NULL)
GUILayout.Label("JSON fail:\n" + j.ToString(true));
else
GUILayout.Label("JSON success:\n" + j.ToString(true));
}
}
}