通过 web api 一个 json 字符串获取响应并仅打印其中一个值

Get response by web api a json string and print only one of the values

我称 API return 为 JSON 字符串,如下所示:

{ 
    "type": "success", 
    "value": 
    { 
        "id": 246, 
        "joke": "Random joke here...", 
        "categories": [] 
    } 
}

我想让我的程序读取 JSON 字符串,return 只读取 joke 字符串。我能够从 Web API 获取字符串,但无法将其发送到 JSON 对象,因此我只能打印笑话字符串。

首先,您需要创建 类 以将 json 反序列化为。为此,您可以使用 VS 的编辑 -> 选择性粘贴 -> 将 Json 粘贴为 类 或使用像 JsonUtils:

这样的网站
public class JokeInfo
{

    [JsonProperty("id")]
    public int Id { get; set; }

    [JsonProperty("joke")]
    public string Joke { get; set; }

    [JsonProperty("categories")]
    public IList<string> Categories { get; set; }
}

public class ServerResponse
{

    [JsonProperty("type")]
    public string Type { get; set; }

    [JsonProperty("value")]
    public JokeInfo JokeInfo { get; set; }
}

然后使用像JSON.NET这样的库来反序列化数据:

// jokeJsonString is the response you get from the server
var serverResponse = JsonConvert.DeserializeObject<ServerResponse>(jokeJsonString);
// Then you can access the content like this:

var theJoke = serverResponse.JokeInfo.Joke;