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

时间:2015-11-29 20:33:26

标签: c# json ssis

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

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库的建议,但是我无法在这个项目中添加任何第三方库。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:3)

您可以使用JsonValue中的System.Json Namespace课程。

JsonValue value = JsonValue.Parse(jsonString);
var quote =  (string)result["quotes"]["USDGBP"];

或者您可以使用JavaScriptSerializer

中的System.Web.Script.Serialization
var serializer = new JavaScriptSerializer();
var result = serializer.Deserialize<ExpandoObject>(jsonString);
var quote = result.quotes.USDGBP;

Json.Decode来自System.Web.Helpers

Var result = Json.Decode(jsonString);
var quote = result.quotes.USDGBP;

答案 1 :(得分:0)

使用JSON.NET解析你的json对象:

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

答案 2 :(得分:0)

您可以使用JavaScriptSerializer您可以添加Syatem.Web.Extensions命名空间参考。

    var serializer = new JavaScriptSerializer();
     //Serialize
     var serializedResult = serializer.Serialize(Object);
     //Deserialize
   var deserializedResult = serializer.Deserialize<OutputObjectType>(jsonString);