首先,这个问题已被问过很多次,但在阅读了所有帖子后,我发现没有一个帖子提供了解决我的特定情况的答案。
此外,请原谅任何不正确的术语,因为我可能会误用术语...
我正在尝试从此查询中获取 JSON 并简单地输出到文本 block :
http://www.imdb.com/xml/find?json=1&nr=1&nm=on&q=jeniffer+garner
产生这个:
{
"name_approx":[
{
"id":"nm0004950",
"title":"",
"name":"Jennifer Garner",
"description":"Actress, Dallas Buyers Club"
},
//more code
{
"id":"nm3144518",
"title":"",
"name":"Jennifer Varner",
"description":"Self, THS Investigates: Hot for Student"
}]}
我尝试使用的代码如下。
类:
public class Movie
{
public List<Stream> name_approx { get; set; }
public Movie ()
{}
}
public class Stream
{
public string id { get; set; }
public string title { get; set; }
public string name { get; set; }
public string description { get; set; }
public Stream ()
{}
}
和...
searchOutput.Text = "";
searchStatusOutput.Text = "Awaiting Response...";
string userURI = inputAddress.Text;
var response = await httpClient.GetAsync(userURI);
response.EnsureSuccessStatusCode();
var content = await response.Content.ReadAsStringAsync();
Movie output = JsonConvert.DeserializeObject<Movie>(content);
//searchOutput.Text = ??????
当我运行它时,我可以看到 Movie Output 正确包含一个 'name_approx' 对象并嵌套在其中 20 个 'Streams' 作为我预计。
但是我不知道如何将它输出到我的文本 block 。我尝试了多种方法,认为我需要使用某种形式的 foreach,但我被卡住了,无法解决。
最佳答案
现在您已将其作为 Json 对象,您可以将父对象序列化回格式化的 Json 字符串并将其显示在
标记中以保持格式。Json.Net 有一个方法:
string json = JsonConvert.SerializeObject(movieObject, Formatting.Indented);
关于c# - 如何使用 JSON.net 格式化嵌套 JSON 对象的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27091048/