我想使用 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# 真的很陌生
谢谢你
您正在尝试将一组
Letters
对象反序列化为单个 Letters
对象。从您的代码意图来看,您正在尝试解析 json 文件中的所有对象。
将您的代码更改为如下所示:(假设您想要一个
List<Letters>
)
var letters_requests = JsonConvert.DeserializeObject<List<Letters>>(json);
如果更适合您,您也可以使用
Letters[]
。