我目前正在了解REST
应用程序,特别是REST的Java
实现。
我不确定JSON
或XML
在REST中扮演什么角色?
示例,以显示我目前的理解:
JSON
或XML
适合这个过程?
答案 0 :(得分:1)
数据从服务返回到前端的格式。
答案 1 :(得分:1)
前端和api之间的数据传输是在 JSON 和/或 XML 中完成的。
所以,简单地...... 用户通过某个网页请求一些数据,并且网页向RESTful API询问特定数据,api将网页发送为 JSON ,然后网页操作该网页显示它或做任何需要处理的数据。
这是描述其角色的一般方法
答案 2 :(得分:1)
控制器内部的方法如下所示,它给出了json响应
<html>
<body>
<input id="inp" type='file'>
<p id="b64"></p>
<img id="img">
<script type="text/javascript">
function EL(id) { return document.getElementById(id); } // Get el by ID helper function
function readFile() {
if (this.files && this.files[0]) {
var FR= new FileReader();
FR.onload = function(e) {
EL("img").src = e.target.result;
EL("b64").innerHTML = e.target.result;
};
FR.readAsDataURL( this.files[0] );
}
}
EL("inp").addEventListener("change", readFile, false);
</script>
</body>
</html>
这是如何在视图中处理的(Say @RequestMapping(value = "/getSomething", method = RequestMethod.POST)
public @ResponseBody String getSomething(HttpServletRequest req)
{
JSONArray jsonArr = new JSONArray();
Collection someList = new ArrayList();
someList = someService.getsomeList(req); // here you get the response from service class to controller
Iterator iter = categoryList.iterator();
while (iter.hasNext()) // iterate the colleection
{
JSONObject jsonObj = new JSONObject();
SomeClass someObj = (SomeClass) iter.next();
jsonObj.put("name", someObj.getName());
jsonArr.put(jsonObj);
}
return jsonArr.toString(); // return jsonstring as response
}
)。这里ajax调用对控制器和响应设置为页面中的字段。
JSP
希望这有帮助!
答案 3 :(得分:1)
如果我们分开你的第五步...... 1)以特定格式从服务返回数据 2)UI以该格式接收它并将其显示在屏幕上。 此格式为XML或JSON甚至纯文本。这是您在从UI进行调用时提到的Accept类型,并在服务中设置响应标头。
JSON代表Javascript Object表示法,因此如果响应是JSON格式,您可以直接将其用作javascript变量,只需使用JSON.parse进行解析即可。 Accept类型实际上取决于您的要求。对于大多数情况,JSON是首选,因为它很容易转换为JS对象。
答案 4 :(得分:0)
正如其他人所说,在您的示例中,JSON / XML适合链的末尾(几乎),当数据从服务器返回到客户端时。
将JSON和XML(以及其他格式)视为一种类型的框。有些盒子是用塑料制成的,有些是用纸板制成的,因为它们用于不同的目的。
JSON / XML是您向服务器发送/请求的数据的“盒子”类型。
在你的例子中:
以这种方式思考:如果没有人/系统引用的通用格式,那么如果查询Oracle数据库,则需要能够理解该格式。如果您必须查询Sybase数据库,那么您也需要能够理解它。
要解决这个问题,您可以选择一种“普通”格式(一种更容易装入更多卡车的盒子,而不是只能通过特定类型的卡车运输的盒子),从而更容易“传输”那些数据。
因此,实质上,JSON / XML只是表示数据的一种方式,因此它可以用来表示最初采用其他“难以阅读”格式的数据,并使其更易于阅读或使用。 / p>
例如,通过将数据库对象作为JSON返回,您可以在网页中显示它们,因为大多数网页框架都理解JSON,而不是很少有人理解Oracle / Sybase格式(有驱动程序可以执行此操作,但它是超出了这个玩具示例的范围)。
您还可以使用它与其他也了解JSON的服务器(例如第三方API)进行通信,因此如果服务器A和B具有不同的数据表示(内部一个是Oracle支持,另一个是Sybase支持)他们仍然可以使用像JSON这样的“常见”格式相互交谈。