2017-05-02 4 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를 사용하여 Amount 값을 추출해야합니다. 코드 서식이 좋지 않을 경우 사과드립니다.

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