gpt4 book ai didi

c# - 如何将此 C# 返回值序列化为 JSON 对象?

转载 作者:太空宇宙 更新时间:2023-11-03 18:51:09 25 4
gpt4 key购买 nike

我有这个要返回的对象值,我想将它转换成我可以检查和操作的有用的 JSON 对象。最终,我的目标是验证 usernameaccessKey 的值。但是有两件事正在解决这个问题。双 {{ 使其成为无效的 JSON 并且 sauce:options 无法转换为类中的属性。

{{
"browserName": "MicrosoftEdge",
"browserVersion": "latest",
"platformName": "Windows 10",
"sauce:options": {
"username": "test",
"accessKey": "123"
}
}}

这是我尝试过的:

string output = JsonConvert.SerializeObject(SauceSession.Options.ConfiguredEdgeOptions);

这个 SauceSession.Options.ConfiguredEdgeOptions 返回我上面提到的那个对象。

得到这个:Newtonsoft.Json.JsonSerializationException:“从‘OpenQA.Selenium.Edge.EdgeOptions’上的‘BinaryLocation’获取值时出错。”

我也按照建议尝试了这个:

var serialized = JsonConvert.SerializeObject(SauceSession.Options.ConfiguredEdgeOptions);

然后返回此 Newtonsoft.Json.JsonSerializationException:“从‘OpenQA.Selenium.Edge.EdgeOptions’上的‘BinaryLocation’获取值时出错。”

最佳答案

由于您无法修复源,因此您将不得不应用一个 bodge 来修复 JSON,例如这将起作用:

var fixedJson = sourceJson.Substring(1, Json.Length - 2);

现在你应该有几个类来保存你的数据,这样你也可以处理不寻常的名字:

public class Root
{
public string BrowserName { get; set; }
public string BrowserVersion { get; set; }
public string PlatformName { get; set; }

[JsonProperty("sauce:options")]
public Options SauceOptions { get; set; }
}

public class Options
{
public string Username { get; set; }
public string AccessKey { get; set; }
}

现在你应该可以这样反序列化了:

var root = JsonConvert.DeserializeObject<Root>(fixedJson);

关于c# - 如何将此 C# 返回值序列化为 JSON 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59036532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com