1

我在一个扩展名为 .json 的文件中有一个 JSON 数据。我从文件中抓取并读取 JSON。我的问题是如何检查payment数组是否有孩子。

我已经尝试过o2["payment"].length(),但它给了我一个错误

“JToken”不包含“长度”的定义,并且找不到接受“JToken”类型的第一个参数的扩展方法“长度”(您是否缺少使用指令或程序集引用?)

我正在使用Json.NET

{
    "bank_name": "MyBank",
    "payment": [
        {
            "ssn": "123456789",
            "description": "Payment for income tax for 2015",
            "amount": "55.00"
        },
        {
            "ssn": "123456789",
            "description": "Payment for income tax for 2016",
            "amount": "95.10"
        },
        {
            "ssn": "123456789",
            "description": "Payment for income tax for 2017",
            "amount": "35.03"
        }
    ]
}




public ActionResult ReadFile()
{

    var Path = "C:\\Payment";
    var PendingPath = Path + "\\Pending";

    string[] FilePaths = Directory.GetFiles(@PendingPath, "*.json");
    foreach ( var CurrentFile in FilePaths )
    {
        using (StreamReader file = System.IO.File.OpenText(CurrentFile))
        using (JsonTextReader reader = new JsonTextReader(file))
        {
            JObject o2 = (JObject)JToken.ReadFrom(reader);
            var bank_name = o2["bank_name"];
            if ( o2["payment"].length() ) //Check here if payment has any children
            {

            }
        }
    }

    return new EmptyResult();
}
4

1 回答 1

4

如果你想使用数组的方法,你应该转换对象:

if (((JArray)o2["payment"]).Count > 0)
{
    // Logic...
}
于 2018-06-26T20:43:14.737 回答