2012-02-06 23 views
1

私は形式のJSONファイルがあります。PHPでJSONファイルでGETリクエストを実行するには?

[{"label":"apple","desc":"fruit"}, 
{"label":"banana","desc":"fruit"}, 
{"label":"celery","desc":"vegetable"}, 
{"label":"plum","desc":"fruit"}, 
{"label":"","desc":"fruit"}] 

どのように私はこのデータにGETリクエストを実行して行くでしょうか?例えば

http://www.mysite.com/data?desc=vegetableは、ブラウザに[{"label":"celery","desc":"vegetable"}]を表示し、

http://www.mysite.com/data?label=apple&desc=fruitここでブラウザへ [{"label":"apple","desc":"fruit"}]

を表示していました私がエミュレートしたい作業例であるでしょう:

http://ws.geonames.org/searchJSONは(何も返しません) http://ws.geonames.org/searchJSON?featureClass=P&style=full&maxRows=12&name_startsWith=paris(一致する都市を返します)

JqueryとPHPは私が使っているツールです。私はこれを設定しようとしているので、リモートのJSONPデータソースでjQuery UIオートコンプリートを使用することができます。 http://jqueryui.com/demos/autocomplete/#remote-jsonp

答えて

2

おそらく、データベース(MySQLなど)に格納した方がよいでしょう。次に、labeldescの列に基づいてクエリを実行できます。次に、結果の行にfetchObjectでアクセスし、オブジェクトをjson_encodeでJSONに直接変換します。

あなたは、彼らが渡すものをGETパラメータに応じて、クエリのいくつかの異なるバージョンを必要とする場合があります。

+0

こんにちはMatthew、アドバイスをいただきありがとうございます。私はプログラミングに本当に新しいので、私を許してください。しかし、私はmysqlデータベースに約20kのエントリを持っています。クエリを実行して各パラメータをソートし、結果を10に制限しました。jQuery UIオートコンプリートを設定し、遅延を0に設定しました。クエリを提案するのにかかる時間は、ファイヤーバグに従ってキーストロークあたり約80msです。 20kのエントリをすべてjsonファイルにエクスポートしてから、jsonファイルでget要求を実行して最初の10個の一致を取得すると、これは速くなりますか? – user784637

+1

@LedZeppelin、いいえ、私は、各リクエストのJSONを解析する方が高速になるとは思わない。 [indices](http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html)を追加することで、クエリ時間を改善することができます。 –

+0

ああ、大丈夫ですね。私はjsonで試してみるだけで、新しいものを学ぶだけのリクエストがありますが、リモートデータソースには満足しています。 – user784637

2
$.ajax({ 
     type: 'GET', 
     url: '/getFood/', 
     dataType: 'json', 
     success: function(data) { 
      // do whatever you want with the data here (like show in a div) 
     }, 
     // replace with whatever you wanna send in the querystring 
     data: {'desc':'vegetable',}, 

    }); 

をサーバー側では、あなたのGETリクエストで「DESC」パラメータをチェックし、適切な応答を送信します。

+0

getリクエストが完了した後、ブラウザにjson形式でラベルと説明を表示させるにはどうすればよいですか?例。 'http://www.mysite.com/data?desc = vegetable'はブラウザで' [{{"label": "celery"、 "desc": "vegetable"}] 'を表示します – user784637

+0

'json'のdataTypeを使用して 'html'を使用し、エンコードされたjson文字列をHTMLとしてサーバー側から書き込むと、ブラウザは単純にそれを表示する必要があります。 – Sid

+0

@Sidでは、 "text"がより適切でしょう。 –

関連する問題