在C#代码中发送请求后将Postman原始JSON数据赋值给变量
在C#中获取请求返回的原始JSON并验证特定值
1. 发送请求获取原始JSON字符串
用HttpClient发送请求后,直接读取响应内容作为字符串,这就是你需要的原始JSON变量:
using System.Net.Http; using System.Threading.Tasks; public async Task FetchAndValidateJson() { using var httpClient = new HttpClient(); // 替换成你的目标API地址 var response = await httpClient.GetAsync("https://your-target-api.com/endpoint"); response.EnsureSuccessStatusCode(); // 确保请求没有出错 // 将原始JSON赋值给字符串变量 string rawJson = await response.Content.ReadAsStringAsync(); // 接下来就可以用这个变量做验证了 }
2. 解析JSON并校验特定值
推荐用两种主流JSON库来解析,方便精准校验字段:
方式一:用Newtonsoft.Json(Json.NET)
先安装Newtonsoft.Json NuGet包,再解析成JObject访问字段:
using Newtonsoft.Json.Linq; // 承接上面的rawJson变量 JObject jsonObj = JObject.Parse(rawJson); // 校验"status"字段是否为"success" string status = jsonObj["status"]?.ToString(); if (status == "success") { // 符合预期的处理逻辑 } else { // 不符合预期的处理 } // 校验嵌套字段,比如"data"下的"userId"是否等于123 int? userId = jsonObj["data"]?["userId"]?.Value<int>(); if (userId == 123) { // 验证通过 }
方式二:用System.Text.Json(.NET Core/.NET 5+内置)
无需额外安装包,用内置的JsonDocument解析:
using System.Text.Json; // 承接上面的rawJson变量 using JsonDocument doc = JsonDocument.Parse(rawJson); JsonElement root = doc.RootElement; // 校验"status"字段 if (root.TryGetProperty("status", out JsonElement statusElement)) { string status = statusElement.GetString(); if (status == "success") { // 逻辑处理 } } // 校验嵌套字段"data.userId" if (root.TryGetProperty("data", out JsonElement dataElement) && dataElement.TryGetProperty("userId", out JsonElement userIdElement)) { if (userIdElement.GetInt32() == 123) { // 验证通过 } }
3. 简单场景:直接校验原始字符串(不推荐)
如果只是快速检查某个特定字符串是否存在,可以直接操作rawJson,但这种方式容易因JSON格式变化失效:
if (rawJson.Contains("\"status\":\"success\"")) { // 存在目标内容的处理 }
内容的提问来源于stack exchange,提问作者Pedro Guzman Iii
相关产品推荐
相关产品推荐

