我一直在阅读一些 JSON 教程,结构和语法对我来说很有意义.. 但我正在尝试做一个需要我做 GET 的项目,这似乎暗示我可以用 JSON 做到这一点。
我读过 JSON 和 AJAX 可以很好地比较,所以我认为这是可能的。如果可以指导我阅读有关如何以这种方式使用 JSON 的内容,或者对其进行解释,我将不胜感激。
谢谢
编辑:请重新打开这个......它首先被关闭的事实令人震惊。正在进行一场完全合法的讨论。没有一个关闭它的人会费心添加任何东西。
我一直在阅读一些 JSON 教程,结构和语法对我来说很有意义.. 但我正在尝试做一个需要我做 GET 的项目,这似乎暗示我可以用 JSON 做到这一点。
我读过 JSON 和 AJAX 可以很好地比较,所以我认为这是可能的。如果可以指导我阅读有关如何以这种方式使用 JSON 的内容,或者对其进行解释,我将不胜感激。
谢谢
编辑:请重新打开这个......它首先被关闭的事实令人震惊。正在进行一场完全合法的讨论。没有一个关闭它的人会费心添加任何东西。
您可能试图让 JSON不使用 JSON。JSON 只是响应的“格式”(符号),而不是检索方法。
您标记了javascript但没有标记jquery(尽管您提到get
它AJAX
通常是 jQuery 的.get()
AJAX 调用的同义词。)因为它比普通的 jane JavaScript 简单得多,并且为了简洁起见,下面是一个使用.getJSON
.
让我们假设服务器上有一个返回 JSON 数据(位于/my/service.json
)的方法,其效果如下:
{
"first_name": "Brad",
"last_name": "Christie"
}
注意:这基本上是输出类似于面向对象语言的“帐户”类的内容,具有两个属性:first_name
&last_name
但以JSON 格式表示为其他语言(您的 AJAX 查询)可以理解信息)
您可以使用 AJAX 来检索它,如下所示:
<script type="text/javascript" src="scripts/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$getJSON('/my/service.json'.function(data){
alert(data.first_name + ' ' + data.last_name); // shows "Brad Christie"
});
});
</script>
跟进:我看到您对 C++ 有疑问,所以让我们尝试提供一个工作示例。我假设您使用过struct
,所以假设您有以下内容:
struct stockitem {
int itemid;
float price;
string description; // :grin: this example #include <string> ;-)
} mystock;
mystock.itemid = 21;
mystock.price = 20.12;
mystock.description = "This Year";
如果您要将这些信息发送给某物,您可以用很多不同的方式对其进行序列化。其中一种方法是使用 JSON(可能看起来像这样):
{
"itemid":21,
"price":20.12,
"description":"This Year"
}
现在,另一端真的不会知道它是结构体还是类或其他数据类型,但在 javascript 中它将成为具有类似功能和访问权限的基本对象:
var mystock = /*the above JSON */;
alert(mystock + '. ' + mystock.description + ' for $' + mystock.price.toFixed(2));
// above outputs: 21. This Year for $20.12
而且,最重要的是,您只是使用 JSON 来传输(公证)原始结构。
问题是 JSON 数据通常在 HTTP 请求的负载中传输。获取请求没有正文,因此没有 JSON(被传输到服务器)。但是,您可以通过 GET 请求接收 JSON 数据。
POST 没有这个限制,因为数据是在请求的有效负载中发送的。