通过 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;
我称 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;