2

I've been reading some JSON tutorials and the structure and syntax makes sense to me.. but I am trying to do a project that requires me to do a GET, and it seems to be implying that I can do that with JSON.

I've read that JSON and AJAX can be compared pretty well, so I would assume that this is possible. If I could be directed towards some reading about how to use JSON in this manner, or have it explained, I would be very grateful.

Thanks

Edit: Please reopen this... The fact that it was closed in the first place is appalling. There was a perfectly legitimate discussion going. And not ONE of the people who closed it bothered adding anything.

4

2 に答える 2

4

JSONでは取得できないJSONを取得しようとしている可能性があります。JSONは、応答の「形式」(表記)であり、取得方法ではありません。

にタグを付けますが、 にはタグを付けません(ただしgetAJAXこれは通常jQueryの.get()AJAX呼び出しと同義です)。プレーンジェーンJavaScriptよりもはるかに単純であり、簡潔にするために、以下はを使用してJSONデータを取得する例です.getJSON

/my/service.jsonサーバー上に、次のような効果のあるJSONデータ(にある)を返すメソッドがあると仮定します。

{
  "first_name": "Brad",
  "last_name": "Christie"
}

注:これは基本的に、2つのプロパティを持つオブジェクト指向言語の「アカウント」クラスに似たものを出力します:first_namelast_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";

この情報を何かに送信する場合は、さまざまな方法でシリアル化できます。それらの方法の1つは、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

The issue is that JSON data is normally transmitted in the payload of the HTTP request. Get requests don't have bodies, therefore no JSON (being transmitted TO the server). However, you can receive JSON data via a GET request.

POST doesn't have this limitation because data is sent in the payload of the request.

于 2012-11-30T02:45:59.193 に答える