1

私がやろうとしているのは、JSON から特定の値を文字列にすることです。

JSON リンク

https://api.dell.com/support/v2/assetinfo/warranty/tags.json?svctags=G88NJX1&apikey=1adecee8a60444738f280aad1cd87d0e

それから特定のデータをテキストボックスに文字列化するにはどうすればよいですか? 「Asset Tag」と「Warranty」の IE 文字列値

私はすでに 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);
4

2 に答える 2

1

デルの保証 API を使用しているようです。JSON 文字列をデコードする代わりに、プロジェクトでそれらへのサービス参照を作成します。API をサービス参照 URL に入れます。これを書いたとき、私が持っていたのは DNS 名ではなく IP アドレスだけだったので、Dell 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
            }
于 2013-08-20T19:45:33.567 に答える
1

これで試すことができます:

JArray obj = (JArray)JsonConvert.DeserializeObject(yourJSONString);
object a = obj[0]["theKeyYouNeed"];

次に、必要なタイプに変換します。

それが役立つことを願っています

于 2013-08-20T19:40:08.327 に答える