我在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 }
。
为了使这项工作,我需要改变什么?
答案 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节点(键盘周围加上单引号)并且它可以工作。