使用 C# 迭代 JSON 字典

问题描述 投票:0回答:1

我想使用 C# 迭代此类 JSON 文件,并比较响应是否与预期响应相同。

杰森 文件:

{
   "request": "AAA",
   "response": "BBB",
   "expected_response": "BBB"
}{
   "request": "CCC",
   "response": "DDD",
   "expected_response": "DDD"
}{
   "request": "EEE",
   "response": "FFF",
   "expected_response": "GGG"
}{
   "request": "HHH",
   "response": "III",
   "expected_response": "III"
}{
   "request": "LLL",
   "response": "YYY",
   "expected_response": "UUU"
}

对我来说,做这样的事情是有意义的:

public class Letters
{
    public string request { get; set; }
    public string response { get; set; }
    public string expectedResponse { get; set; }
}

var json = System.IO.File.ReadAllText("path/to/json/file.json");

var letters_requests = JsonConvert.DeserializeObject<Letters>(json);

foreach (var letter in letters_requests)
{
    if(letter.response == letter.expectedResponse)
        // do something
}

但是,出现以下错误:

foreach statement cannot operate on variable of type 'Letters' because 'Letters' does not contain a public instance or extension definition for 'GetEnumerator'
.

有人可以解释一下我怎样才能实现我想要的吗?我对 C# 真的很陌生

谢谢你

c# json
1个回答
0
投票

您正在尝试将一组

Letters
对象反序列化为单个
Letters
对象。从您的代码意图来看,您正在尝试解析 json 文件中的所有对象。

将您的代码更改为如下所示:(假设您想要一个

List<Letters>

var letters_requests = JsonConvert.DeserializeObject<List<Letters>>(json);

如果更适合您,您也可以使用

Letters[]

© www.soinside.com 2019 - 2024. All rights reserved.