gpt4 book ai didi

c# - 如何解析来自 HttpClient 的 JSON 字符串?

转载 作者:可可西里 更新时间:2023-11-01 03:04:05 25 4
gpt4 key购买 nike

我通过调用外部 API 获得 JSON 结果。

        HttpClient client = new HttpClient();
client.BaseAddress = new Uri(url);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = client.GetAsync(url).Result;

if (response.IsSuccessStatusCode)
{
var result = response.Content.ReadAsStringAsync().Result;
var s = Newtonsoft.Json.JsonConvert.DeserializeObject(result);
return "Success";
}
else
{
return "Fail";
}

var s = Newtonsoft.Json.JsonConvert.DeserializeObject(result); 我得到的结果是这样的:

 {{
"query": "1",
"topScoringIntent": {
"intent": "1",
"score": 0.9978111,
"actions": [
{
"triggered": false,
"name": "1",
"parameters": []
}
]
},
"entities": [],
"dialog": {
"prompt": "1",
"parameterName": "1",
"parameterType": "1::1",
"contextId": "11",
"status": "1"
}
}}

我正在使用 HttpClient。我在访问 prompt 键值时遇到困难。我想从 dialog 得到 prompt。我怎样才能得到它?

最佳答案

我想到了三种方法。

  1. 假设 json 是一致的并且响应的结构不会经常更改,我会使用像 json2csharp 这样的工具或 jsonutils创建 C# 类。

    然后调用:

    {GeneratedClass} obj = JsonConvert.DeserializeObject<{GeneratedClass}>(result);

    这将为您提供一个可以使用的强类型对象。

  2. 您可以跳过类生成并使用动态对象:

    dynamic obj = JsonConvert.DeserializeObject<dynamic>(result)

    并访问以下属性:

    obj.dialog.prompt;
  3. 您可以使用 JObject 并使用字符串访问其属性

    JObject obj = JsonConvert.DeserializeObject(result);

    obj["dialog"]["prompt"]

关于c# - 如何解析来自 HttpClient 的 JSON 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39468096/

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