在SSIS中使用C#脚本解析JSON字符串

在SSIS中使用C#脚本解析JSON字符串,c#,json,ssis,C#,Json,Ssis,我正在使用SSIS中的C#脚本任务从CurrencyLayer检索美元->英镑汇率。我使用了以下代码: string url = Dts.Variables["User::CurrencyLayerURL"].Value.ToString(); WebClient wc = new WebClient(); var jsonString = wc.DownloadString(url); 要成功检索以下JSON字符串: { "success":true, "terms":"ht

我正在使用SSIS中的C#脚本任务从CurrencyLayer检索美元->英镑汇率。我使用了以下代码:

string url = Dts.Variables["User::CurrencyLayerURL"].Value.ToString();
WebClient wc = new WebClient();
var jsonString = wc.DownloadString(url);
要成功检索以下JSON字符串:

{  
   "success":true,
   "terms":"https:\/\/currencylayer.com\/terms",
   "privacy":"https:\/\/currencylayer.com\/privacy",
   "historical":true,
   "date":"2015-11-28",
   "timestamp":1448755199,
   "source":"USD",
   "quotes":{  
      "USDGBP":0.66527
   }
}

但是,我现在不确定如何仅检索对应于“USDGBP”汇率的0.66527值并将其传递给变量。我已经看到了许多关于使用JSON.net库的建议,但是我无法向这个项目添加任何第三方库。任何帮助都将不胜感激。

使用json.NET解析您的json对象:

dynamic d = JObject.Parse(jsonString );
Console.WriteLine(d.quotes.USDGBP);

您可以使用
System.Json命名空间中的
JsonValue

JsonValue value = JsonValue.Parse(jsonString);
var quote =  (string)result["quotes"]["USDGBP"];
或者您可以使用
System.Web.Script.Serialization

var serializer = new JavaScriptSerializer();
var result = serializer.Deserialize<ExpandoObject>(jsonString);
var quote = result.quotes.USDGBP;

您可以使用JavaScriptSerializer,也可以添加Syatem.Web.Extensions命名空间引用

    var serializer = new JavaScriptSerializer();
     //Serialize
     var serializedResult = serializer.Serialize(Object);
     //Deserialize
   var deserializedResult = serializer.Deserialize<OutputObjectType>(jsonString);
var serializer=newJavaScriptSerializer();
//连载
var serializedResult=serializer.Serialize(对象);
//反序列化
var deserializedResult=序列化程序。反序列化(jsonString);

我无法添加任何第三方库,因此我无法使用JSON.net。您可以保持它的简单性,只需使用字符串解析即可。当您的包主要是C代码时,您可能需要重新考虑它是否应该是一个包。我找不到System.Json命名空间或System.Web.Script.Serialization。您还记得添加了什么引用吗?
    var serializer = new JavaScriptSerializer();
     //Serialize
     var serializedResult = serializer.Serialize(Object);
     //Deserialize
   var deserializedResult = serializer.Deserialize<OutputObjectType>(jsonString);