我如何在 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
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