我正在执行以下操作:
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: Invalid JSON String。
是否有什么我没有做或遗漏的事情?
变量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
谢谢
最佳答案
你错过了一些东西。您正在尝试将 XML 解析为 JSON,即使格式完全不同。使用像 SAX 这样的 XML 解析器而不是 JSON 解析器。
关于java - Http 响应 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9104129/