如何让我的HttpUrlConnection以JSON格式返回数据?

时间:2013-01-14 12:34:33

标签: java jquery json get httpurlconnection

我在Java应用程序和Web应用程序之间有一个HttpUrlConnection。在Java应用程序上,我有代码:

exchange.sendResponseHeaders(HttpURLConnection.HTTP_OK, response.getBytes().length);
exchange.getResponseHeaders().set("content-type", "application/json");
exchange.getResponseBody().write(response.getBytes());
exchange.close();

我认为错误的代码在第二行,但我无法弄清楚我应该怎么做。交换的类型为HttpExchange

字符串响应包含:{ batteryMax: 22000, batteryCharge: 860, carRange: 350 }

我使用以下代码检索数据:

var jsonData;
var jqxhr = $.getJSON("http://145.93.73.69:8080/getInfo", function(data) {
    jsonData = data
})
.error(function() { alert("error"); });

error始终收到提醒,jsonData未定义且jqxhr.responseText包含{ batteryMax: 22000, batteryCharge: 860, carRange: 350 }

为了使这项工作,我需要改变什么?

2 个答案:

答案 0 :(得分:5)

Json必须像这样

{ "batteryMax": 22000, "batteryCharge": 860, "carRange": 350 }

答案 1 :(得分:0)

我找到了解决方案:

                ObjectMapper mapper = new ObjectMapper();
                mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
                //JsonNode df = mapper.readValue(response, JsonNode.class);
                byte[] responseInBytes = mapper.writeValueAsBytes(response);

我使用Jackson从我拥有的字符串中创建一个JSON节点(键盘周围加上单引号)并且它可以工作。