2017-05-02 3 views
1

現在、Seleniumベースのオートメーションフレームワークを使用してテスト自動化を行っています。私は現在、APIスイートを作成するためにHTTPリクエストを送信しています。HTTPイベントストリームからデータを抽出するJava

ただし、投稿が必要な次のURLはテキスト/イベントストリームの一部です。 抽出が必要なデータは、eventStream自体の中にあります。

a["{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":{\"VirgoSessionToken\":\"8C7A0FAA-EA27-473A-BCC3-E568ABDBD403\",\"Localization\":{\"LocaleString\":\"en_UK\",\"LanguageTag\":\"en-UK\",\"DecimalSeparator\":\".\",\"ZeroDigit\":\"0\",\"ThousandsSeparator\":\",\",\"CurrencySymbolLocation\":\"PREFIX\"},\"Balance\":{\"Timestamp\":1493730819967,\"Banks\":{\"CREDIT\":{\"Amount\":83872,\"CurrencyCode\":\"GBP\",\"MinorCurrencyUnits\":2,\"CurrencySymbol\":\"GBP\"},\"WINNINGS\":{\"Amount\":0,\"CurrencyCode\":\"GBP\",\"MinorCurrencyUnits\":2,\"CurrencySymbol\":\"GBP\"}}},\"Preferences\":{\"Global\":{},\"Game\":{}},\"State\":{\"value\":\"{\\\"serverState\\\":{\\\"player\\\":{\\\"uniqueVirgoId\\\":\\\"f85551d0-2f36-11e7-9136-314c3f96f318\\\",\\\"playerBindingState\\\":{\\\"20\\\":0,\\\"40\\\":0,\\\"60\\\":0,\\\"80\\\":0,\\\"100\\\":0,\\\"200\\\":0,\\\"400\\\":0,\\\"600\\\":0,\\\"800\\\":0,\\\"1000\\\":0,\\\"2000\\\":0,\\\"4000\\\":0,\\\"6000\\\":0,\\\"8000\\\":0,\\\"10000\\\":0},\\\"populated\\\":true},\\\"game\\\":{\\\"currencyCode\\\":\\\"\\\"}},\\\"jackpotState\\\":{}}\"},\"ApiPhase\":\"Idle\"}}"] 

Javaを使用して金額を抽出する必要があります。 コードの書式があまり良くない場合はお詫び申し上げます。

EventStreamsからデータを抽出する最良の方法はありますか?私のフレームワークが何をするかの例として

String webSocketUrl = insHostedUrl + responseTitle + "/xc_yx4r_" + "/eventsource"; 
assertTrue(httpCreateRequest("post", webSocketUrl); 
assertTrue(httpSendRequest()); 
response = httpGetResponse(); 

リクエストに表示されているURLでこのポスト。しかし、これは私をeventStreamデータに変換しません。

+0

と別の記事ですか? – freedev

+0

実際のデータコードが質問に記載されています。プロジェクトのコード自体は、内部のオートメーションフレームワークとして公開されていません。私はフレームワークがそれほど進まないので、これを抽出できる汎用的なJavaメソッドがあるかどうかを確認するためにポストしていました。 – mvoase

+0

私が見ているのは大きなJson文字列(内部に入れ子になったJson文字列)です。 – freedev

答えて

0

おそらくgoogle jsonライブラリを使用して、このようなコードを実行できます。ここで

JsonObject jsonObject = new 
 
JsonParser().parse({\"Amount\":0}").getAsJsonObject(); 
 
System.out.println(jsonObject.get("Amount").getAsString());

コードがある場合はより多くの情報 How to parse JSON in Java

+0

応答のためにありがとう。それは実際にデータそのものthatsになっている。これを追加していただき、ありがとうございます。しかし、JSONはリクエスト自体のレスポンスボディには載っていません。サーバー側のeventStream内のみ。 – mvoase

関連する問題