我调用一个API,它返回一个像这样的JSON字符串:
{
"type": "success",
"value":
{
"id": 246,
"joke": "Random joke here...",
"categories": []
}
}
我想让我的程序读取JSON字符串并仅返回joke
字符串。我能够从Web API获取字符串,但我无法将其转换为JSON对象,因此我只能打印笑话字符串。
答案 0 :(得分:1)
首先,您需要创建类以将您的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;