# JSON、XML、JSONP
beego 当初设计的时候就考虑了 API 功能的设计,而我们在设计 API 的时候经常是输出 JSON 或者 XML 数据,那么 beego 提供了这样的方式直接输出:
注意 struct 属性应该 为 exported Identifier
首字母应该大写
- JSON 数据直接输出:
```go
func (this *AddController) Get() {
mystruct := { ... }
this.Data["json"] = &mystruct
this.ServeJSON()
}
```
调用 ServeJSON 之后,会设置 `content-type` 为 `application/json`,然后同时把数据进行 JSON 序列化输出。
- XML 数据直接输出:
```go
func (this *AddController) Get() {
mystruct := { ... }
this.Data["xml"]=&mystruct
this.ServeXML()
}
```
调用 ServeXML 之后,会设置 `content-type` 为 `application/xml`,同时数据会进行 XML 序列化输出。
- jsonp 调用
```go
func (this *AddController) Get() {
mystruct := { ... }
this.Data["jsonp"] = &mystruct
this.ServeJSONP()
}
```
调用 ServeJSONP 之后,会设置 `content-type` 为 `application/javascript`,然后同时把数据进行 JSON 序列化,然后根据请求的 callback 参数设置 jsonp 输出。
开发模式下序列化后输出的是格式化易阅读的 JSON 或 XML 字符串;在生产模式下序列化后输出的是压缩的字符串。
- beego简介
- 为 beego 贡献
- 发布版本
- 升级指南
- beego安装升级
- Bee 工具的使用
- 快速入门
- 新建项目
- 路由设置
- Controller 运行机制
- model 逻辑
- view 编写
- 静态文件处理
- beego 的 MVC 架构介绍
- controller 设计
- 参数配置
- 路由设置
- 控制器函数
- XSRF 过滤
- 请求数据处理
- session 控制
- 过滤器
- flash 数据
- URL构建
- 多种格式数据输出
- 表单数据验证
- 错误处理
- 日志处理
- model设计
- 概述
- ORM 使用
- CRUD 操作
- 高级查询
- 原生 SQL 查询
- 构造查询
- 事务处理
- 模型定义
- 命令模式
- 测试用例
- 自定义字段
- FAQ
- view 设计
- 模板语法指南
- 模板处理
- 模板函数
- 静态文件处理
- 模板分页处理
- beego 的模块设计
- session 模块
- grace 模块
- cache 模块
- logs 模块
- httplib 模块
- context 模块
- toolbox 模块
- config 模块
- i18n 模块
- beego 高级编程
- 进程内监控
- API 自动化文档
- 应用部署
- 独立部署
- supervisor 部署
- Nginx 部署
- apache 部署
- beego 第三方库
- 应用例子
- 在线聊天室
- 短域名服务
- Todo 列表
- beego实用库
- 验证码
- 分页
- FAQ