c#来查询json文件

本文关键字:文件 json 查询 | 更新日期: 2023-09-27 18:19:52

我有一个json文件,如下所示:

 {
  "rowId": "39",
  "refNumber": "19",
  "title": "Mobile",
  "date": "10/29/2015",
  "status": "saved"
 }{
  "rowId": "10",
  "refNumber": "478",
  "title": "Completion",
  "date": "10/30/2015",
  "status": "saved"
 }{
   "rowId": "11",
   "refNumber": "604",
   "title": "Online Order",
   "date": "10/30/2015",
   "status": "failed"
  }

我想做的是用一个winforms应用程序像这样查询c#中的json文件:

string qrySaved = "select count(*) as total from file where status = 'saved'";
string qryFailed = "select count(*) as total from file where status = 'failed'";

然后将结果放入两个变量中。

我做了以下事情:

 logFolder = Directory.GetCurrentDirectory();
 logFolder = logFolder.Replace("''bin''Debug", "''metrics");
 logFile = logFolder + @"'log.json";

我正在使用Newtonsoft.Json nuget资源,知道如何读取第一个对象,但不知道如何查询文件以返回基于给定元素的总计数。

c#来查询json文件

您可以尝试以下操作:

    static void Main(string[] args)
    {
        string json = File.ReadAllText("sample1.json");
        var array =  JArray.Parse(json);
        int savedcount = array.Count(i => i["status"].Value<string>() == "saved");
        int failedcount = array.Count(i => i["status"].Value<string>() == "failed");
    }

可能是打字错误,但发布的JSON无效,所以我将其更改为以下内容以使其正常工作:

[
    {
        "rowId": "39",
        "refNumber": "19",
        "title": "Mobile",
        "date": "10/29/2015",
        "status": "saved"
    },
    {
        "rowId": "10",
        "refNumber": "478",
        "title": "Completion",
        "date": "10/30/2015",
        "status": "saved"
    },
    {
        "rowId": "11",
        "refNumber": "604",
        "title": "Online Order",
        "date": "10/30/2015",
        "status": "failed"
    }
]