c# - 从 JSON 格式的字符串中检索 JSON 格式的字符串

标签 c# json json.net

因此,我使用 HttpClient 来检索 HttpResponseMessage,其中我将内容作为字符串读出:

using (var responseStream = response.Content.ReadAsStringAsync())
{
    var streamContent = responseStream.Result;
}

现在,streamContent 似乎是一个 JSON 格式的字符串,但我想要得到的是 payload,它又似乎是一个 JSON 格式的字符串。 JSON 可视化工具 (VS) 给了我这个:

[JSON]
    [0]
        payload_bytes: 201
        payload: "{"type":"Models.Event.Partyhat","Id":"123"}"

我在获取有效负载时遇到了一些麻烦,更不用说其中驻留的 JSON 字符串了。我尝试摆弄 JsonConvert,但这对我没有多大帮助。

有什么提示吗?

更新:

我的反序列化尝试:

var streamContent = JsonConvert.DeserializeObject<object>(responseStream.Result);

编辑2:

可能值得添加实际的字符串:

[{"payload_bytes":201,"payload":"{\"type\":\"Models.Event.Partyhat\",\"Id\":\"123\"}"}]

最佳答案

string jsonText = ...;
dynamic root = JsonConvert.DeserializeObject(jsonText);        
string payloadText = root[0].payload;  // do not use 'var' here
dynamic payload = JsonConvert.DeserializeObject(payloadText);       

这会让您string typeText = Payload.type;“Models.Event.Partyhat”

关于c# - 从 JSON 格式的字符串中检索 JSON 格式的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51533498/

相关文章:

c# - Json.Net 未正确序列化版本类型

c# - 从表达式中获取结果

c# - Rebus 停止从 RabbitMQ 检索消息

php - 排除 PDO::fetchAll() 的编号索引元素

c# - 反序列化 JSON 会生成默认类

c# - 在 Xamarin 中将 json 字符串转换为 .NET 对象

c# - 为什么 ICollection<>.Contains 会忽略我重写的 Equals 和 IEquatable<> 接口(interface)?

c# - 执行并行任务 -> 等待所有任务 -> 使用结果

python - django 上的代码 200 httpresponse

javascript - 为什么我在一条路线上没有得到 req.body ? Node JS