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资源,知道如何读取第一个对象,但不知道如何查询文件以返回基于给定元素的总计数。
您可以尝试以下操作:
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"
}
]