我如何在 C# 中获取 2 {{}} 中的元素

How can i fetch the element inside 2 {{}} in c #

var options = new RestClientOptions(Endpoint)
var client = new RestClient(options);
vsr request = new RestRequest();
var response = await client.GetAsync(request);
var requestContent = response.Content;
var parsed = JsonConvert.DeserializeObject(responseContent);

parsed中的值为:

{{
"value1" : "input1",
"value2" : null,
"value3" : {"valuex" : 4,
"valuey" : 5,
"valuez" : 6}
"value4" : 17
}}

requestContent中的值:

"{
\"value1\" : \"input1\",
\"value2\" : null,
\"value3\" : {\"valuex\" : 4,
\"valuey\" : 5,
\"valuez\" : 6}
\"value4\" : 17
}"

我是 c# 的新手,我只想解析 valuez 中的数据,在这种情况下是 6,我在请求内容上尝试了很多东西,比如尝试反序列化和试图解析我调试的 parsed 值,并在解析后尝试通过放置 . 来访问其子项,类似于我们在 javascript 中所做的,但似乎没有任何效果。

您需要将对象反序列化为您的类型的对象。示例:

var parsed = JsonConvert.DeserializeObject<object>(responseContent);

public class MyClass
{
    public string value1 { get; set; }
    public string value2 { get; set; }
}
var parsed = JsonConvert.DeserializeObject<MyClass>(responseContent);

您提供的无效 JSON:

{
    "value1": "input1",
    "value2": null,
    "value3": {
        "valuex": 4,
        "valuey": 5,
        "valuez": 6
    }         // <---- missing comma here.
    "value4": 17
}

如果不确定,您可以随时使用 JSONLint (remember to remove escape characters, which can be done using regex (online tool like regex101))

等工具确认它是否有效

假设您有一个有效的 json(所以只需添加逗号):

var r = JsonConvert.DeserializeObject<Dictionary<string,dynamic>>(yourInputString);

...或如其他人所述,您可以创建自定义模型。最简单的方法是使用另一个工具,即 Json2csharp. You can also refer to this article