如何打印JSON API调用的所有结果

时间:2014-08-27 04:26:32

标签: c# json api deserialization

我正在制作一个需要通过API获取数据的网络应用。我试图重新设计一些开发人员的示例代码,这些代码与原始代码的编写方式不同。这是重要的部分:

            WebRequest request = WebRequest.Create(urlPrefix + "getthingjson/" + Key);
            WebResponse response = request.GetResponse();

            Stream dataStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(dataStream);

            string responseFromServer = reader.ReadToEnd();

            reader.Close();
            response.Close();

            // Parse returned JSON into data
            //
            using (var web = new WebClient())
            {
                web.Encoding = System.Text.Encoding.UTF8;
                var jsonString = responseFromServer;
                var jss = new JavaScriptSerializer();
                var ThingsList = jss.Deserialize<List<Things>>(jsonString);
                string ThingsListStr = "";

                foreach (Things x in ThingsList)
                    ThingsListStr = ThingsListStr + ", " + x.Name;

                MessageBox.Show(ThingsListStr);
            }

我知道我需要更改姓名&#39;为了获得关于“事物”的不同信息。呼叫。问题是,我需要在不同的功能上调用结果,而不是“事物”。说&#39;细节&#39;。我不知道该找什么代替&#39;姓名&#39;因为当我搜索它时它什么也没有返回。我怎么能反序列化JSON返回的所有内容?对不起,如果我的术语已经关闭或者我犯了一个简单的错误,我是JSON和C#的新手。谢谢!

1 个答案:

答案 0 :(得分:0)

要获取详细信息而不是名称属性,您应该:

  1. 检查您是否在json中收到此数据。
  2. 如果不存在,请使用Details属性调整c#类。 (转到Things类并添加新的Details属性)
  3. 更改

    ThingsListStr = ThingsListStr + ", " + x.Name;
    

    ThingsListStr = ThingsListStr + ", " + x.Details;