我正在尝试使用一种Web服务,该服务以json格式返回所需的数据。现在,实际要点是我可以从特定的Web服务URL中以字符串形式获取数据。

  string url= @"http://api.oodle.com/api/v2/listings?key=TEST&region=chicago&category=vehicle&format=json";

  string jsonString = new WebClient().DownloadString(url);

现在的关键是我以字符串形式(以JSON格式)获取数据。但是我不知道如何将字符串转换为JSON字符串以及如何从此字符串中获取数据。

让我给你举个例子,这样你就可以轻松理解

如果我的jsonString像
{
   "current":{
      "region":{
         "id":"chicago",
         "name":"Chicago"
      },
      "category":{
         "id":"vehicle",
         "name":"Cars & Vehicles",
         "abbrev":"Vehicles"
      },
      "start":1,
      "num":10
   }
}

如何从该字符串获取region_name?希望你能理解我 !尝试使用Test Link!

最佳答案

添加对System.Web的引用,然后添加到您的using部分

using System.Web.Script.Serialization;

然后(使用您的示例json字符串)
string jsonString = "{\"current\":{\"region\":{\"id\":\"chicago\",\"name\":\"Chicago\"},\"category\":{\"id\":\"vehicle\",\"name\":\"Cars & Vehicles\",\"abbrev\":\"Vehicles\"},\"start\":1, \"num\":10}}";

JavaScriptSerializer serializer = new JavaScriptSerializer();

CurrentRecord currentRecord = serializer.Deserialize<CurrentRecord>(jsonString);

string regionName = currentRecord.current.region.name;

还将以下类添加到您的项目中:
[Serializable]
public class CurrentRecord
{
    public current current;
}

[Serializable]
public class current
{
    public region region;
    public category category;
    public int start;
    public int num;
}

[Serializable]
public class region
{
    public string id;
    public string name;
}

[Serializable]
public class category
{
    public string id;
    public string name;
    public string abbrev;
}

关于c# - 从JSON提取数据时出现困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9110264/

10-10 23:27
查看更多