2011-11-11 13 views
5

これは本当に基本的なことだと私は知っていますが、どこにでも見えて正しい答えを見つけることはできません。私は短いPHPスクリプトを記述しようとしているHow to format list in PHP to be used as an NSArray in Objective C?PHPでJSONをエンコードしてiPhoneアプリで使用する

(それについて何も知らない)私のiPhoneアプリは、項目のリストを取得するために呼び出します。私の前の質問を参照して

。私は本当にECHOを使用することを考えました。なぜなら、複数のアイテムの配列を送信する必要は本当にありませんでしたが、JSONまたはXMLを使用するようにアドバイスされたので、JSONを選択しました。

私はJSONに配列をエンコードする方法を探していますが、私が見つけることができる唯一のものはJSON構造を提供していないjson_encodeでした。私のPHPコードは以下の通りです:

<?php 

$arr = array ('a', 'b','c','d','e'); 
echo json_encode($arr); 

?> 

これは私が使用するはずのものですか?私は間違って何かしていますか?どうもありがとう。

EDIT:出力厥

ターミナルこのPHPスクリプトを実行する:

[ "A"、 "B"、 "C"、 "D"、 "E"]

私が知る限り、これはJSON構造ではありませんが、もう一度、私はそれについてほとんど何も知りません。

+1

は、その後、あなたはiOSの – Daniel

+1

上にNSArrayにそれを解読CNAがなぜあなたはjson_encodeではないと信じていますJSON構造を提供していますか? –

+0

@JasonMcClellan - 私の編集を参照してください。 – TommyG

答えて

4

私が知る限り、それは正しいです。あなたのJSONが有効であるかどうかをテストする

良い方法は、詳述するとhttp://jsonlint.com/

を使用することです:

$arr = array ('a'=>'a value', 'b'=>'b value','c'=>'c value'); 
echo json_encode($arr); 
$arr = array ('a', 'b','c'); 
echo json_encode($arr); 

はあなたを与える必要があります。

{"a":"a value","b":"b value","c":"c value"} 
["a","b","c"] 

@で指摘したようにジェイソンMcClellan、第二は正しいです。

そう、はい、あなたはjavascriptで読み取り可能な何かに配列をエンコードする正しいことをやっています。

他の機能は、明らかにjsonをデコードするjson_decode($json);です。ここ ドキュメント:あなたは基本的に配列がJSONとしてエンコードされます、そのページアドレスとiOSのURL要求を行った場合http://php.net/manual/en/function.json-encode.php

+2

JSONではkey => valueのペアは必要ありません。 JSONはJSの構文です。この例では、配列をエンコードしているので、配列のJS構文が得られました。彼が連想配列を使用した場合、匿名オブジェクトのJS構文を取得します。これは、ほとんどの人がJSONを考えるときに慣れていることです。 –

+1

ああ...私の間違い、そのおかげで、更新された答えを参照してください – jammypeach

関連する問題