2

我一直在阅读一些 JSON 教程,结构和语法对我来说很有意义.. 但我正在尝试做一个需要我做 GET 的项目,这似乎暗示我可以用 JSON 做到这一点。

我读过 JSON 和 AJAX 可以很好地比较,所以我认为这是可能的。如果可以指导我阅读有关如何以这种方式使用 JSON 的内容,或者对其进行解释,我将不胜感激。

谢谢

编辑:请重新打开这个......它首先被关闭的事实令人震惊。正在进行一场完全合法的讨论。没有一个关闭它的人会费心添加任何东西。

4

2 回答 2

4

您可能试图让 JSON使用 JSON。JSON 只是响应的“格式”(符号),而不是检索方法。

您标记了但没有标记(尽管您提到getAJAX通常是 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 来传输(公证)原始结构。

于 2012-11-30T02:49:15.613 回答
3

问题是 JSON 数据通常在 HTTP 请求的负载中传输。获取请求没有正文,因此没有 JSON(被传输到服务器)。但是,您可以通过 GET 请求接收 JSON 数据。

POST 没有这个限制,因为数据是在请求的有效负载中发送的。

于 2012-11-30T02:45:59.193 回答