public void MissingRequiredProp()
        {
            const string input  = "{ \"name\": \"Person 1\", \"gender\": \"M\" }";
            const string schema = "{ \"$schema\": \"https://json-schema.org/draft/2020-12/schema\", \"$id\": \"https://just.net\", \"title\": \"JUST Test\", \"description\": \"JUST test schema\", \"type\": \"object\", \"properties\": { \"id\": { \"description\": \"JUST Test\", \"type\": \"integer\" } }, \"required\": [ \"id\" ]}";
            var          v      = new JsonValidator(input);

            v.AddSchema(null, schema);

            var result = Assert.ThrowsAsync <Exception>(async() => await v.Validate());

            Assert.AreEqual("PropertyRequired: #/id", result.Message);
        }
        public async Task SchemaOk()
        {
            const string input  = "{ \"id\": 1, \"name\": \"Person 1\", \"gender\": \"M\" }";
            const string schema = "{ \"$schema\": \"https://json-schema.org/draft/2020-12/schema\", \"$id\": \"https://just.net\", \"title\": \"JUST Test\", \"description\": \"JUST test schema\", \"type\": \"object\", \"properties\": { \"id\": { \"description\": \"JUST Test\", \"type\": \"integer\" } }, \"required\": [ \"id\" ]}";
            var          v      = new JsonValidator(input);

            v.AddSchema(null, schema);

            await v.Validate();

            Assert.Pass();
        }
Beispiel #3
0
        public static void Main(string[] args)
        {
            string input = File.ReadAllText("Examples/Input.json");

            string transformer       = File.ReadAllText("Examples/Transformer_valueof.json");
            string transformedString = JsonTransformer.Transform(transformer, input);

            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);


            transformer       = File.ReadAllText("Examples/Transformer_valueofarray.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);


            transformer       = File.ReadAllText("Examples/Transformer_copy.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_replace.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_delete.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);


            transformer       = File.ReadAllText("Examples/Transformer_ifcondition.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_string.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_math.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_aggregate.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_arrayaggregate.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_looping.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_customfunction.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_nestedfunctions.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_xfunctions.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_Existance.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/DataTransformer.xml");
            transformedString = DataTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/DataTransformer.csv");
            transformedString = DataTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(input)));
            Console.WriteLine(transformedString);



            Console.WriteLine("################################################################################################");
            string inputJson   = File.ReadAllText("Examples/ValidationInput.json");
            string schemaJsonX = File.ReadAllText("Examples/SchemaX.json");
            string schemaJsonY = File.ReadAllText("Examples/SchemaY.json");

            string InputToSplit = File.ReadAllText("Examples/InputToSplit.json");

            List <string> outputs = JsonTransformer.SplitJson(InputToSplit, "$.cars.Ford").ToList <string>();

            foreach (string output in outputs)
            {
                Console.WriteLine("-----------------------------------------------------");
                Console.WriteLine(output);
            }

            Console.WriteLine("################################################################################################");

            JsonValidator validator = new JsonValidator(inputJson);

            validator.AddSchema("x", schemaJsonX);
            validator.AddSchema("y", schemaJsonY);

            validator.Validate();

            Console.WriteLine("################################################################################################");
            transformer       = File.ReadAllText("Examples/Transformer_nestedloop.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(input)));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");
            transformer       = File.ReadAllText("Examples/Transformer_looptests.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(input)));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");

            string inputSpecial = File.ReadAllText("Examples/InputSpecial.json");

            transformer       = File.ReadAllText("Examples/Transformer_customfunctionspecial.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(inputSpecial)));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");

            string inputUnordered = File.ReadAllText("Examples/Input_Unordered.json");

            transformer       = File.ReadAllText("Examples/Transform_Unordered.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(inputUnordered)));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");

            string inputUnordered2 = File.ReadAllText("Examples/Input_Unordered_2.json");

            transformer       = File.ReadAllText("Examples/Transform_Unordered_2.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(inputUnordered2)));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");


            string inputDyn = File.ReadAllText("Examples/InputDynamic.json");

            transformer       = File.ReadAllText("Examples/TransformDynamic.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(inputDyn)));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");

            transformer       = File.ReadAllText("Examples/Transformer_externalmethods.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(input)));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");

            transformer       = File.ReadAllText("Examples/Transformer_array.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(transformer, input));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");

            transformer       = File.ReadAllText("Examples/Transformer_array.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JArray.Parse(transformer), input));
            Console.WriteLine(transformedString);

            Console.ReadLine();
        }
Beispiel #4
0
        public static void Main(string[] args)
        {
            string input = File.ReadAllText("Examples/Input.json");

            string transformer       = File.ReadAllText("Examples/Transformer_valueof.json");
            string transformedString = JsonTransformer.Transform(transformer, input);

            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);


            transformer       = File.ReadAllText("Examples/Transformer_valueofarray.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);


            transformer       = File.ReadAllText("Examples/Transformer_copy.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_replace.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_delete.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);


            transformer       = File.ReadAllText("Examples/Transformer_ifcondition.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_string.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_math.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_aggregate.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_arrayaggregate.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_looping.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_customfunction.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_nestedfunctions.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_xfunctions.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer_Existance.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/DataTransformer.xml");
            transformedString = DataTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/DataTransformer.csv");
            transformedString = DataTransformer.Transform(transformer, input);
            Console.WriteLine("################################################################################################");
            Console.WriteLine(transformedString);

            transformer       = File.ReadAllText("Examples/Transformer.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(input)));
            Console.WriteLine(transformedString);



            Console.WriteLine("################################################################################################");
            string inputJson   = File.ReadAllText("Examples/ValidationInput.json");
            string schemaJsonX = File.ReadAllText("Examples/SchemaX.json");
            string schemaJsonY = File.ReadAllText("Examples/SchemaY.json");

            string InputToSplit = File.ReadAllText("Examples/InputToSplit.json");

            List <string> outputs = JsonTransformer.SplitJson(InputToSplit, "$.cars.Ford").ToList <string>();

            foreach (string output in outputs)
            {
                Console.WriteLine("-----------------------------------------------------");
                Console.WriteLine(output);
            }

            Console.WriteLine("################################################################################################");

            JsonValidator validator = new JsonValidator(inputJson);

            validator.AddSchema("x", schemaJsonX);
            validator.AddSchema("y", schemaJsonY);

            validator.Validate();

            Console.WriteLine("################################################################################################");
            transformer       = File.ReadAllText("Examples/Transformer_nestedloop.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(input)));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");
            transformer       = File.ReadAllText("Examples/Transformer_looptests.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(input)));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");

            string inputSpecial = File.ReadAllText("Examples/InputSpecial.json");

            transformer       = File.ReadAllText("Examples/Transformer_customfunctionspecial.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(inputSpecial)));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");

            string inputUnordered = File.ReadAllText("Examples/Input_Unordered.json");

            transformer       = File.ReadAllText("Examples/Transform_Unordered.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(inputUnordered)));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");

            string inputUnordered2 = File.ReadAllText("Examples/Input_Unordered_2.json");

            transformer       = File.ReadAllText("Examples/Transform_Unordered_2.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(inputUnordered2)));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");


            string inputDyn = File.ReadAllText("Examples/InputDynamic.json");

            transformer       = File.ReadAllText("Examples/TransformDynamic.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(inputDyn)));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");

            transformer       = File.ReadAllText("Examples/Transformer_externalmethods.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(input)));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");

            transformer       = File.ReadAllText("Examples/Transformer_array.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(transformer, input));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");

            transformer       = File.ReadAllText("Examples/Transformer_array.json");
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JArray.Parse(transformer), input));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");

            transformer = File.ReadAllText("Examples/Transformer_registeredmethods.json");
            var context = new JUSTContext();

            context.RegisterCustomFunction("ExternalMethods", "ExternalMethods.ExternalClass", "StaticMethod", "External_StaticMethod");
            context.RegisterCustomFunction("ExternalMethods", "ExternalMethods.ExternalClass", "StaticTypedParameters", "External_StaticTypedParameters");
            context.RegisterCustomFunction("ExternalMethods", "ExternalMethods.ExternalClass", "InstanceMethod", "External_InstanceMethod");
            context.RegisterCustomFunction("ExternalMethods", "ExternalMethods.ExternalClass", "TypedParameters", "External_TypedParameters");
            context.RegisterCustomFunction("ExternalMethods", "ExternalMethods.ExternalClass", "NavigateTypedParameters", "External_NavigateTypedParameters");

            context.RegisterCustomFunction(null, "InternalMethods.InternalClass", "StaticMethod");
            context.RegisterCustomFunction(null, "InternalMethods.InternalClass", "StaticTypedParameters");
            context.RegisterCustomFunction(null, "InternalMethods.InternalClass", "InstanceMethod");
            context.RegisterCustomFunction(null, "InternalMethods.InternalClass", "TypedParameters");
            context.RegisterCustomFunction(null, "InternalMethods.InternalClass", "NavigateTypedParameters");

            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(input), context));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");

            transformer = File.ReadAllText("Examples/Transformer_registeredmethods.json");
            JsonTransformer.GlobalContext.RegisterCustomFunction("ExternalMethods", "ExternalMethods.ExternalClass", "StaticMethod", "External_StaticMethod");
            JsonTransformer.GlobalContext.RegisterCustomFunction("ExternalMethods", "ExternalMethods.ExternalClass", "StaticTypedParameters", "External_StaticTypedParameters");
            JsonTransformer.GlobalContext.RegisterCustomFunction("ExternalMethods", "ExternalMethods.ExternalClass", "InstanceMethod", "External_InstanceMethod");
            JsonTransformer.GlobalContext.RegisterCustomFunction("ExternalMethods", "ExternalMethods.ExternalClass", "TypedParameters", "External_TypedParameters");
            JsonTransformer.GlobalContext.RegisterCustomFunction("ExternalMethods", "ExternalMethods.ExternalClass", "NavigateTypedParameters", "External_NavigateTypedParameters");

            JsonTransformer.GlobalContext.RegisterCustomFunction(null, "InternalMethods.InternalClass", "StaticMethod");
            JsonTransformer.GlobalContext.RegisterCustomFunction(null, "InternalMethods.InternalClass", "StaticTypedParameters");
            JsonTransformer.GlobalContext.RegisterCustomFunction(null, "InternalMethods.InternalClass", "InstanceMethod");
            JsonTransformer.GlobalContext.RegisterCustomFunction(null, "InternalMethods.InternalClass", "TypedParameters");
            JsonTransformer.GlobalContext.RegisterCustomFunction(null, "InternalMethods.InternalClass", "NavigateTypedParameters");

            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(input)));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");

            JsonTransformer.GlobalContext.EvaluationMode = EvaluationMode.Strict;

            inputDyn          = File.ReadAllText("Examples/InputDynamic.json");
            transformer       = "{ \"Result\": { \"Header\": \"JsonTransform\", \"#eval(#valueof($.Tree.Flower))\": \"x\", \"#ifgroup(#exists($.Tree.Flower))\": { \"Comment\": { \"Statement\": \"Flower Exists\" } } }}";
            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(inputDyn)));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");

            JsonTransformer.GlobalContext.EvaluationMode = EvaluationMode.FallbackToDefault;

            inputDyn    = File.ReadAllText("Examples/InputDynamic.json");
            transformer = "{ \"Result\": { \"Header\": \"JsonTransform\", \"#ifgroup(1)\": { \"State\": { \"Value1\": \"#valueof($.Tree.Branch)\", \"Value2\": \"#valueof($.Tree.Flower)\" }} } }";

            transformedString = JsonConvert.SerializeObject
                                    (JsonTransformer.Transform(JObject.Parse(transformer), JObject.Parse(inputDyn)));
            Console.WriteLine(transformedString);

            Console.WriteLine("################################################################################################");

            input             = File.ReadAllText("Examples/Input.json");
            transformer       = File.ReadAllText("Examples/Transformer_typeconversion.json");
            transformedString = JsonTransformer.Transform(transformer, input);
            Console.WriteLine(transformedString);

            Console.ReadLine();
        }