使用C#创建一个Windows服务来解析JSON数据并将其插入SQL表

时间:2015-08-24 19:14:42

标签: c# json parsing json.net

我是JSON中的noobie。在我的研究中,我可以看到使用JSON与其他api方法的价值,但我有一个独特的情境问题。

但是,我的问题在于尝试解析JSON数据。我在C#中尝试了三种不同的方法来通过URL解析数据并不断收到各种错误。我相信我最近的方法会让我得到我正在寻找的东西但现在我在尝试执行代码时遇到一般错误。

static void Main(string[] args)
{
    ExecuteRiskSearch();
    Console.ReadLine();
}

static void ExecuteRiskSearch()
{
    string url = "https://localhost/api/getWatchList/EDD9-5FFA-2A6A-3CB9ZCC";

    JObject results = JObject.Parse(url);

    foreach (var result in results["results"])
    {
        string cid = (string)results["CID"];
        JToken rank = results["rank"];

        string risk = "";
        if (rank is JValue)
        {
            risk = (string)rank;
        }
        else if (rank is JArray)
        {
            risk = (string)((JArray)rank).First;
        }

        Console.WriteLine("CID: {0}, Rank:{1}", cid, risk);
    }
}

错误发生在JObject results = JObject.Parse(url);

  

Newtonsoft.Json.dll中发生未处理的“Newtonsoft.Json.JsonReaderException”类型异常   附加信息:解析值时遇到意外的字符:h。路径'',第0行,第0位。

请说明为什么会发生这种情况?我基于这个吗?

1 个答案:

答案 0 :(得分:1)

JObject.Parse(string json)不会将网址作为参数。您需要下载字符串,然后解析:

string url = "https://localhost/api/getWatchList/EDD9-5FFA-2A6A-3CB9ZCC";
string json = new WebClient().DownloadString(url);
JObject results = JObject.Parse(json);