Skip to content
Snippets Groups Projects
JSONManager.cs 1.64 KiB
Newer Older
  • Learn to ignore specific revisions
  • using JsonSubTypes;
    using Newtonsoft.Json;
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public static class JSONManager 
    {
    
        public static string URIPrefix = "http://mathhub.info/MitM/core/geometry?3DGeometry?";
    
        [JsonConverter(typeof(JsonSubtypes), "kind")]
        public class MMTTerm
        {
            string kind;
        }
    
        public class OMA : MMTTerm
        {
            public MMTTerm applicant;
            public List<MMTTerm> arguments;
            public string kind = "OMA";
            public OMA(MMTTerm applicant, List<MMTTerm> arguments)
            {
                this.applicant = applicant;
                this.arguments = arguments;
            }
        }
    
        public class OMS : MMTTerm
        {
            public string uri;
            public string kind = "OMS";
    
            public OMS(string uri)
            {
                this.uri = URIPrefix + uri;
            }
        }
    
    
        public class OMF : MMTTerm
        {
            [JsonProperty("float")]
            public float f;
            public string kind = "OMF";
    
            public OMF(float f)
            {
                this.f = f;
            }
        }
    
    
        class DeclarationBody : MMTTerm
        {
            MMTTerm original;
            MMTTerm simplified;
            string kind = "O/S";
        }
    
    
        public class MMTDeclaration
        {
            public string label;
            public MMTTerm tp;
            public MMTTerm df;
        }
    
        public static MMTDeclaration FromJson(string json)
        {
            MMTDeclaration mmtDecl = JsonConvert.DeserializeObject<MMTDeclaration>(json);
            return mmtDecl;
        }
        public static string ToJson(MMTDeclaration mmtDecl)
        {
            string json = JsonConvert.SerializeObject(mmtDecl);
            return json;
        }
    
    }