標準 JSON 數組格式
[
{
"id": "1",
"date": 1451972654541,
"user": {
"id": "user_1"
},
"schedules": "1,2"
},
{
"id": "2",
"date": 1451972654541,
"user": {
"id": "user_2"
},
"schedules": "2"
}
]
結構說明
- 最外層:
[ ... ] 表示 JSON 數組,對應 Java List<Object> 或 Object[]。
- 每個元素:
{ ... } 表示 JSON 對象,對應 Java 實體類/Map。
- 嵌套對象:
"user": { "id": "user_1" } 表示對象屬性又是一個對象,Java 中為關聯實體或嵌套 Map。
- 字符串字段:
"schedules": "1,2" 逗號分隔字符串,前端可 split(",") 轉數組。
Java 實體類映射
public class ScheduleItem {
private String id;
private Long date; // timestamp
private User user; // 嵌套對象
private String schedules; // "1,2"
// getter/setter
}
public class User {
private String id;
// getter/setter
}
後端序列化示例
@RestController
public class ScheduleController {
@GetMapping("/schedules")
public List<ScheduleItem> list() {
List<ScheduleItem> list = service.findAll();
return list; // Spring MVC 自動序列化為上述 JSON 數組
}
}
前端解析
fetch('/schedules')
.then(res => res.json())
.then(arr => {
arr.forEach(item => {
console.log(item.id, item.user.id, item.schedules.split(','));
});
});
常見錯誤
- 返回單個對象
{...} 而非數組 [{...}],導致前端 .forEach 報錯。
- 日期未統一格式(timestamp vs ISO 字符串),建議後端統一輸出 ISO-8601 字符串(
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss"))。