我正在尝试做的是来自JSON的字符串特定值。
JSON链接
我如何能够将特定数据从它串到文本框? I.E字符串“资产标签”的价值& “保证”
我已经有DeserializeObject的代码并将其显示在文本框中。我只是不确定如何从中挑选特定数据,因为我不需要大部分垃圾。
string Serial = "G88NJX1";
WebClient webClient = new WebClient();
dynamic result = JsonConvert.DeserializeObject(webClient.DownloadString("https://api.dell.com/support/v2/assetinfo/warranty/tags.json?svctags=" + Serial + "&apikey=1adecee8a60444738f280aad1cd87d0e"));
textBox1.Text = Convert.ToString(result);
答案 0 :(得分:1)
你可以试试这个:
JArray obj = (JArray)JsonConvert.DeserializeObject(yourJSONString);
object a = obj[0]["theKeyYouNeed"];
然后转换为您需要的类型。
希望有所帮助
答案 1 :(得分:1)
我发现您使用的是Dell保修API。而不是解码他们的JSON字符串,在项目中为他们创建服务引用。将他们的API放在您的服务参考URL中。回到我写的时候,我所拥有的只是IP地址而不是DNS名称,所以我对戴尔API的服务参考是:
http://143.166.84.118/services/assetservice.asmx?WSDL
以下是我获取保修数据(以及其他内容)的方法。它使用API的EntitlementData对象来存储信息。
string ServiceTag = "your service tag here";
DellServiceReference.AssetServiceSoapClient svc = new DellServiceReference.AssetServiceSoapClient();
Guid DellFeeder = new Guid("12345678-1234-1234-1234-123456789012");
DellServiceReference.Asset[] assets = svc.GetAssetInformation(DellFeeder, "dellwarrantycheck", ServiceTag);
// go through each warranty
DellServiceReference.EntitlementData[] entitlements = assets[0].Entitlements;
foreach (DellServiceReference.EntitlementData warr in entitlements)
{
DateTime start = warr.StartDate;
DateTime stop = warr.EndDate;
// do stuff with this
}