2012-02-01 53 views
1

我执行以下操作:的HttpResponse以JSON

HttpGet getMethod = new HttpGet(url); 
getMethod.addHeader("Accept","application/x-oslc-cm-change-request+json"); 
HttpResponse httpResponse = httpClient.execute(getMethod); 

其中URL指向一个XML文件,该文件是:

<oslc_cm:Collection oslc_cm:totalCount="1"> 
    <rtc_cm:Project rdf:resource="https://private"/> 
</oslc_cm:Collection> 

接下来,我执行

InputStream is = httpResponse.getEntity().getContent(); 
String json = convertStreamToString(is); 
JSON jsonObject = JSONSerializer.toJSON(json); 

在最后一行,我得到一个异常,JSONException:无效的JSON字符串。

有没有我没有做的事,或失去了什么?

变量JSON包含HTTP响应,这就是:

<!DOCTYPE html> 

<!-- 
a comment 

--> 

<html> 

<head> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
<meta http-equiv="X-UA-Compatible" content="IE=8"> 
<title></title> 

<link type="text/css" rel="stylesheet" href="/jazz/web/_style/?inclu 
VelSxGN_en_US&_proxyURL=%2Fjazz"> 
<link rel="shortcut icon" href="/jazz/web/net.jazz.ajax/jazz.ico"> 

<style type="text/css"> 
#net-jazz-ajax-NoScriptMessage { 
    width: 100%; 
    color: #D0D0D0; 
    font-size: 2em; 
    text-align: center; 
    position: absolute; 
    top: 1%; 
    z-index: 999; 
} 
    </style> 

</head> 

<body class="tundra"> 
    <noscript><div id="net-jazz-ajax-NoScriptMessage">Javascript is disabled or not available in your Browser</div></noscript> 
<div id="net-jazz-ajax-InitialLoadMessage">Loading...</div> 
<div id="net-jazz-ajax-WorkbenchRoot"></div> 

<script type="text/javascript"> 
     djConfig = { 
       isDebug: false, 
       usePlainJson: true, 
       baseUrl: "/jazz/web/dojo/", 
       locale: "en-us", 
       localizationComplete: true 
     }; 
     /*null*/ 
     net = {jazz: {ajax: {}}}; 
     net.jazz.ajax._contextRoot = "/jazz"; 
     net.jazz.ajax._webuiPrefix = "/web/"; 
</script> 

<script type="text/javascript" src="/jazz/web/_js/?include=Z~&eten_US"></script> 


<script type="text/javascript"> 
/* <![CDATA[ */ 

dojo.getObject('jazz.core.loader', true)._loaded=['Z']; 
net.jazz.ajax._rootServices = 'https://private'; 

net.jazz.ajax._storageService = 'https://private'; 

net.jazz.ajax._queryService = 'https://private'; 

net.jazz.ajax._infoCenterRoot = 'https://private'; 

net.jazz.ajax._oauthRealmName = 'Jazz'; 

net.jazz.ajax._viewletServiceRoot = 'https://private'; 

net.jazz.ajax._viewletWebUIRoot = 'https://private'; 

net.jazz.ajax._hasLocalRepository = true; 
net.jazz.ajax._proxyLegacyMode = false; 
net.jazz.ajax._oauthDomains = ['https://private'] 

net.jazz.ajax._friendDomains = ['https://private'] 


/* ]]> */ 
</script> 

<script type="text/javascript"> 
/* <![CDATA[ */ 
     dojo.addOnLoad(function() { 
       net.jazz.ajax.ui.PlatformUI.createAndRunWorkbencweb.app.authrequired"); 
     }); 
/* ]]> */ 
</script> 
</body> 
</html 

感谢

+2

为什么你想解析XML就像是JSON呢? – skaffman 2012-02-01 22:13:50

+1

是否打印出json?它包含了什么? – Gus 2012-02-01 22:14:16

+0

这是什么目的?你是否想将String'json'中的XML转换为JSON?这不起作用。 – 2012-02-01 22:15:07

回答

2

你失去了一些东西。您试图将XML解析为JSON,即使格式完全不同。使用像SAX这样的XML解析器代替JSON解析器。

0
URL url = new URL("http://www.example.com/"); 
URLConnection con = url.openConnection(); 
InputStream in = con.getInputStream(); 
String encoding = con.getContentEncoding(); 
encoding = encoding == null ? "UTF-8" : encoding; 
String body = IOUtils.toString(in, encoding); 
System.out.println(body);