0

HttpUrlConnection在 Java 应用程序和 Web 应用程序之间有一个。在 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 }.

为了使这项工作,我必须改变什么?

4

2 回答 2

5

json一定是这样的

{ "batteryMax": 22000, "batteryCharge": 860, "carRange": 350 }
于 2013-01-14T12:38:08.170 回答
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);

我使用杰克逊从我拥有的字符串中创建一个 JSON 节点(+ 单引号围绕键)并且它可以工作。

于 2013-01-16T09:35:32.687 回答