如何使用JSON.net格式化嵌套JSON对象的输出?

时间:2014-11-23 16:07:25

标签: c# json json.net

首先,已经多次询问过这个问题,但是在阅读了我发现的所有帖子后,没有提供修复我的特定情况的答案。

此外,请原谅任何不正确的术语,因为我可能会滥用条款......

我正在尝试从此查询中获取JSON,只需输出到文本块:

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 = ??????           

当我运行时,我可以看到电影输出正确包含一个'name_approx'对象并嵌套在其中20 'Streams' as我预计。

但我无法弄清楚如何将其输出到我的文本块。我已经尝试了很多方法,并认为我需要使用某种形式的foreach但是我被困住了,无法解决它。

1 个答案:

答案 0 :(得分:1)

现在您将它作为Json对象,您可以将父对象序列化回格式化的Json字符串并在&lt; pre&gt;中显示它。用于保持格式化的标签。

Json.Net有一个方法:

string json = JsonConvert.SerializeObject(movieObject, Formatting.Indented);