1

私はこのようなURLを持っています。これはこのリンクhttp://www.mysite.com/json.jsのようなjsファイルの例 であり、そのリンクは以下のようなjson形式の値を出力します。

{
"note":null,
"attributes":null,
"total_price":9980,
"total_weight":0,
"item_count":4,
"items":[{
  "id":214597138,
  "title":"Acai +",
  "price":2495,
  "line_price":9980,
  "quantity":4,
  "sku":"",
  "grams":0,
  "vendor":"Delta Labs",
  "variant_id":214597138,
  "url":"/products/acai",
  "image":"http://cdn.shopify.com/s/files/1/0156/4994/products/acai_bottle.png?385",
  "handle":"acai",
  "requires_shipping":true
}],
"requires_shipping":true}

今、私はそのリンクを取得したかったのですが、jqueryで、タイトル、URL、価格、SKUなどの値を取得するためにjson出力でそのリンクをどのように使用しますか?

これを処理できる関数がいくつかあるかどうかグーグルで検索し、jQuery.getJSONを見つけましたが、私はそれをあまり理解していませんか、それとも私が達成しようとしていることに適用できますか?

ちなみに、http://www.mysite.com/json.js、そのjson値は動的であるため、取得したいリンクであり、jsonコンテンツを出力します

4

4 に答える 4

3

これが私がそれを行う方法です。たとえば、ajaxリクエストです。

$.get('http://www.mysite.com/json.js', function(result) {
   var json = $.parseJSON(result);
   alert(json.title); //Do whatever you want here
});
于 2012-05-04T06:12:33.520 に答える
1

JSONが有効であることを確認してください-> http://www.jsonlint.com

jSONのすべてのエントリを確認するには、次のことを試してください。

$.getJSON("url/to/json/file",function(data){
    $.each(data,function(index,element){
        console.log(element.items.url);
    });
});

1つのエントリを取得するには、これを試してください($ .eachなし):

$.getJSON("url/to/json/file",function(data){
    console.log(data.items.url);
});

CrossDomainの問題ではないことを確認してください。ドメイン間のJSON解析が機能しない場合があります。それらの1つではないことを確認してください。CrossDomainを使用するには、JSONPを使用します。JSONとJSONPの違いは、JSONPがコールバックをサポートでき、クロスドメインで機能することです。

それが役に立てば幸い

于 2012-05-04T07:19:37.837 に答える
0

それを変数に入れて、

myJSON = $.parseJSON(YOUR_JSON);

それから、

myJSON.items[0].url
于 2012-05-04T06:07:27.863 に答える
0

jQuery.parseJSON

var obj = jQuery.parseJSON('{"name":"John"}');
alert( obj.name === "John" );

また、jQuery.getJSON/を使用することもできます

于 2012-05-04T06:08:09.823 に答える