我正在尝试使用timestamp,x和y字段转换下面的Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\MyName\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 1883, in __call__
return self.func(*args)
TypeError: stack() takes 0 positional arguments but 1 was given
JsonArray
致JsonString
[
1588464000,
1,
0
],
[
1589068800,
0,
0
]
]
我得到以下回应,我得到以下回应
[ {
"timestamp": "1367712000",
"x": 6898,
"y": 18728,
}
]
String jsonString2 = mapper.writer().writeValueAsString(response);
不确定如何获取jsonArray的正确响应,而正义主体将成为响应的一部分。想知道我在响应中获取标头信息,状态代码,statusValue
PayLoadDto
{
"headers": {
"Strict-Transport-Security": [
],
"Access-Control-Expose-Headers": [
],
"Status": ["200 OK"],
"Content-Length": ["3105"],
"Server": ["x.com"],
"Access-Control-Allow-Origin": [ "*"]
},
"body": "[[1588464000,1,0],[1589068800,1,0],",
"statusCode": "OK",
"statusCodeValue": 200
}
答案 0 :(得分:0)
根据OP的注释,数据将始终按timestamp
,x
,y
的顺序排列。因此,我们可以将json主体读取为List<List<String>>
,然后将值设置为PayloadDto
对象。
// Fetch data from API
ResponseEntity<String> response = restTemplate.exchange( url, HttpMethod.GET, request, String.class );
// Read body from response
String jsonBody = response.getBody();
// Read jsonBody as List
ObjectMapper mapper = new ObjectMapper();
List<List<String>> dataList = mapper.readValue(jsonBody, new TypeReference<List<List<String>>>(){});
// Convert List to POJO List
List<PayLoadDto> payLoadDtos = new ArrayList<>();
dataList.forEach(item -> {
PayLoadDto payLoadDto = new PayLoadDto();
payLoadDto.setTimestamp(item.get(0));
payLoadDto.setX(Integer.parseInt(item.get(1)));
payLoadDto.setY(Integer.parseInt(item.get(2)));
payLoadDtos.add(payLoadDto);
});
// Convert POJOs to JSON String
System.out.println(mapper.writeValueAsString(payLoadDtos));
输出:
[
{
"x": 1,
"y": 0,
"timestamp": "1588464000"
},
{
"x": 1,
"y": 0,
"timestamp": "1589068800"
}
]