如何使用Newton JSON和C#验证JSON对象

c8ib6hqw  于 2023-02-17  发布在  C#
关注(0)|答案(1)|浏览(160)

我是Visual Studio中测试的新手,通常我总是使用适当的测试工具来验证json文件及其数据
我被困在如何验证JSON对象、JSON文件中的数据
通过下面的代码,我正在读取JSON文件,并希望进一步验证JSON对象
下面是我的readJSON方法,它读取文件,但现在我想检查它是否包含任何给定的特定值,比方说我想检查它是否包含"Details"及其值"XYZG
我尝试将JSON转换为ToString(),然后再转换为user.count方法,但它在输出中给出的值为0,因此我从代码中删除了ToString()块
JSON数据

{
    "Details":"XYZG",
    "City":"Tokyo",
    "Id":"ATOOO",
    "Name":"Johny"
}

读取json方法

public string ReadMyJsonFile(String FilePath)
        {
            string storeValue = "";
            using (StreamReader readerobject = new StreamReader(FilePath))
            {
                string jsonString = readerobject.ReadToEnd();

            }
            return storeValue;

        }

试验方法

public async TaskTest()
        {
          var json = ReadMyJsonFile(@"FilePath/Test.json");
            var testobject = JsonConvert.DeserializeObject<JObject>(json);
            Console.WriteLine(testobject);

            try
            {
                if (testobject.SelectTokens("$..Id").Any(t => t.Value<string>() == "$..Id"))
                {
                    Console.WriteLine("\n \n value exist");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("error keyword");
            }

        }

´´´
我有点被json数据的验证部分卡住了

ctehm74n

ctehm74n1#

最好打印json字符串,而不是JObject

try
    {
        var json = ReadMyJsonFile(@"FilePath/Test.json");

        if (!string.IsNullOrEmpty(json))
        {
            Console.WriteLine("json file exists \n");
            Console.WriteLine(json);
        }
        else
        {
            Console.WriteLine("json file not exists \n");
            return;
        }

        var testObject = JObject.Parse(json);

        if (!string.IsNullOrEmpty((string)testObject["Id"]))
        {
            Console.WriteLine("\n Id value exists");
            Console.WriteLine((string)testObject["Id"]);
        }
        else
            Console.WriteLine("\n Id value doesnt exist");
    }
    catch (Exception ex)
    {
        Console.WriteLine("error "+ex.Message);
    }

相关问题