gold_sprint_lpr/Assets/JSON/Editor/JSONChecker.cs
2018-03-11 22:47:34 +01:00

68 lines
1.8 KiB
C#

//#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,
""SomeFloat"": 13.37,
""SomeBool"": true,
""SomeNull"": null
},
""SomeEmptyObject"": { },
""SomeEmptyArray"": [ ],
""EmbeddedObject"": ""{\""field\"":\""Value with \\\""escaped quotes\\\""\""}""
}
}"; //dat string literal...
string URL = "";
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));
}
EditorGUILayout.Separator();
URL = EditorGUILayout.TextField("URL", URL);
if (GUILayout.Button("Get JSON")) {
Debug.Log(URL);
WWW test = new WWW(URL);
while (!test.isDone) ;
if (!string.IsNullOrEmpty(test.error)) {
Debug.Log(test.error);
} else {
Debug.Log(test.text);
j = new JSONObject(test.text);
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));
}
}
}