我正在尝试在自动化测试中使用JSON文件中的数据。因为我找到了如何处理它的方法,感谢@jeroenh,我在这里留下了正确的方法。我希望它能对某些人有所帮助。
-- JSON文件(testDataCo.Json):
{
"DataCo": [
{
"url": "https://dodo.com",
"user": "test@test.com",
"password": "uawe",
}
]
}
-- 将数据确定的类转换为 JSON 文件
sing System.Globalization;
using Newtonsoft.Json.Converters;
using System.IO;
using Newtonsoft.Json;
namespace DataFromJson
{
public partial class DataJson
{
[JsonProperty("DataCo")]
public DataCo[] DataCo { get; set; }
}
public partial class DataCo
{
[JsonProperty("url")]
public string Url { get; set; }
[JsonProperty("user")]
public string User { get; set; }
[JsonProperty("password")]
public string Password { get; set; }
}
public partial class DataJson
{
public static DataJson FromJson(string json) => JsonConvert.DeserializeObject<DataJson>(json, DataFromJson.Converter.Settings);
}
public static class Serialize
{
public static string ToJson(this DataJson self) => JsonConvert.SerializeObject(self, DataFromJson.Converter.Settings);
}
internal static class Converter
{
public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
{
MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
DateParseHandling = DateParseHandling.None,
Converters = {
new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }
},
};
}
}
-- 这里你可以使用JSON中的数据作为变量
public class UseJsonInVar
{
string filepath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "../../testDataCo.json");
StreamReader ddd = new StreamReader(filepath);
var json = ddd.ReadToEnd();
DataJson objectJson = JsonConvert.DeserializeObject<DataJson>(json);
url = objectJson.DataCo[0].Url;
user = objectJson.DataCo[0].User;
pass = objectJson.DataCo[0].Password;
}
DataCo obj = JsonConvert.DeserializeObject(json);
string plant = obj.Plant;
Console.WriteLine(plant);
- martin pbvar json = r.ReadToEnd(); DataJson obj = JsonConvert.DeserializeObject(json);
var plant = obj.DataCo[0].Plant;
Console.WriteLine(plant);
- martin pb