首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HttpResponse到JSON

HttpResponse到JSON
EN

Stack Overflow用户
提问于 2012-02-02 06:11:56
回答 2查看 2K关注 0票数 1

我正在执行以下代码:

代码语言:javascript
复制
HttpGet getMethod = new HttpGet(url);
getMethod.addHeader("Accept","application/x-oslc-cm-change-request+json");
HttpResponse httpResponse = httpClient.execute(getMethod);

其中URL指向XML文件,该文件为:

代码语言:javascript
复制
<oslc_cm:Collection oslc_cm:totalCount="1">
    <rtc_cm:Project rdf:resource="https://private"/>
</oslc_cm:Collection>

接下来,我执行

代码语言:javascript
复制
InputStream is = httpResponse.getEntity().getContent();
String json = convertStreamToString(is);
JSON jsonObject = JSONSerializer.toJSON(json);

在最后一行,我得到了一个异常,JSONException: Invalid JSON String。

是不是有什么我没做的,或者错过了什么?

变量json包含http响应,即:

代码语言:javascript
复制
<!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

谢谢

EN

回答 2

Stack Overflow用户

发布于 2012-02-02 06:13:44

你一定漏掉了什么。您正在尝试将XML解析为JSON,即使它们的格式完全不同。使用像SAX这样的解析器,而不是JSON解析器。

票数 2
EN

Stack Overflow用户

发布于 2012-12-07 02:53:01

代码语言:javascript
复制
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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9104129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档