2015-06-19 6 views
1

Внутри моего приложения Я запуска ниже кодаОтвет не может бросить в JSON

RestTemplate client=new RestTemplate(); 
if(ipaddress.length>0) 
{ 
    for (int i = 0; i < ipaddress.length; i++) { 
     System.out.println(baseUrl+"/grid/api/proxy?id="+ipaddress[i]); 
     ResponseEntity<Object> object= client.getForEntity(baseUrl+"/grid/api/proxy?id="+ipaddress[i], Object.class); 
     System.out.println(object); 
    } 
} 

Обратный результат объект показан ниже:

<200 OK,{success=true, 
     msg=proxy found !, 
     id=http://192.168.3.37:5555, 
     request={class=org.openqa.grid.common.RegistrationRequest, 
        id=null, 
        name=null, 
        description=null, 
        configuration={port=5555, 
           servlets=[], 
           host=192.168.3.37, 
           Dwebdriver.ie.driver=C:\Anoop\IEdriver\IEDriverServer.exe=, 
           cleanUpCycle=5000, 
           Dwebdriver.chrome.driver=C:\Anoop\chromeDriver\chromedriver.exe=, 
           browserTimeout=0, 
           hubHost=localhost, 
           registerCycle=5000, 
           capabilityMatcher=org.openqa.grid.internal.utils.DefaultCapabilityMatcher, 
           newSessionWaitTimeout=-1, 
           hub=http://localhost:4444/grid/register, 
           url=http://192.168.3.37:5555, 
           remoteHost=http://192.168.3.37:5555, 
           register=true, 
           throwOnCapabilityNotPresent=true, 
           nodePolling=5000, 
           proxy=org.openqa.grid.selenium.proxy.DefaultRemoteProxy, 
           browser=browserName=firefox, 
           maxSession=5, 
           role=node, 
           jettyMaxThreads=-1, 
           hubPort=4444, 
           timeout=300000}, 
        capabilities=[{seleniumProtocol=WebDriver, 
           platform=WIN8_1, 
           browserName=firefox}, 
           {seleniumProtocol=WebDriver, 
           platform=WIN8_1, 
           browserName=chrome}, 
           {seleniumProtocol=WebDriver, 
           platform=WIN8_1, 
           browserName=internet explorer}]}}, 
     {Content-Type=[application/json;charset=UTF-8], 
     Content-Length=[1185], 
     Server=[Jetty(7.x.y-SNAPSHOT)]}> 

Если я использую JSONObject здесь вместо Object в ответ сущность метод я получаю {}

Как можно преобразовать Object в JSONObject?

Примечание: мое приложение не является веб-приложением.

+0

просьба представить более подробную информацию, чтобы мы могли помочь вам – Sridhar

+0

я думаю, что вам нужно 'object.getBody()', чтобы получить только содержание JSON. –

ответ

0

Следующий код, который вы можете использовать в application-context.xml при настройке RestTemplate.

<beans:bean id="restTemplate" class="org.springframework.web.client.RestTemplate"> 
    <constructor-arg ref="httpClientFactory" /> 
    <property name="messageConverters"> 
     <list> 
      <beans:bean 
       class="org.springframework.http.converter.ByteArrayHttpMessageConverter" /> 
      <beans:bean 
       class="org.springframework.http.converter.FormHttpMessageConverter" /> 
      <beans:bean 
       class="org.springframework.http.converter.StringHttpMessageConverter" /> 
      <beans:bean 
       class="org.springframework.http.converter.xml.SourceHttpMessageConverter" /> 
      <beans:bean 
       class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter"> 
       <constructor-arg> 
        <beans:bean class="org.springframework.oxm.xstream.XStreamMarshaller" /> 
       </constructor-arg> 
      </beans:bean> 
      <ref bean="jsonConverter" /> 
     </list> 
    </property> 
</beans:bean> 
<beans:bean id="jsonConverter" 
    class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> 
    <property name="supportedMediaTypes" value="application/json" /> 
</beans:bean> 
<beans:bean id="annotationMethodHandlerAdapter" 
    class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 
    <property name="messageConverters"> 
     <list> 
      <ref bean="jsonConverter" /> 
     </list> 
    </property> 
</beans:bean> 

Надеюсь, этот материал поможет вам. Дайте мне знать, если у вас есть сомнения.

+0

Спасибо Darshan, В этом контексте это приложение не является веб-приложением – ANP

0
ResponseEntity<Object> object= client.getForEntity(baseUrl+"/grid/api/proxy?id="+ipaddress[i], Object.class); 

Здесь вы можете передать то, что объект, который вы хотите, я предложу, если вы знаете, возвращающуюся структуру объекта, чтобы создать один фиктивный класс подмешать и HttpMessage преобразователь будет отвечать за преобразование его в фиктивную классе. Если вы хотите, чтобы другой JSON-провайдер отвечал за десериализацию, вы можете передать String в ResponseEntity<T> и десериализовать его вручную.

использование образца:

ResponseEntity<Identifier> postForEntity = postForEntity = getTemplate().postForEntity(builder.toUri(), entity, Identifier.class); 
     logger.info("creating creative result : "+postForEntity.getBody()); 
Смежные вопросы