2011-11-11 25 views
5

我知道這是非常基本的,但我無處不在,無法找到正確的答案。在PHP中使用PHP編碼JSON以用於iPhone應用程序

參考我的前面的問題:How to format list in PHP to be used as an NSArray in Objective C?

我一直在試圖寫一個簡短的PHP腳本(一無所知吧),我的iPhone應用程序會以獲得項目的列表調用。我想過使用ECHO,因爲我真的不需要發送多個項目數組,但建議使用JSON或XML,所以選擇JSON。

我正在尋找一種將數組編碼爲JSON的方法,我唯一能找到的就是json_encode,它似乎沒有提供JSON結構。這裏是我的PHP代碼:

<?php 

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

?> 

這是我應該用什麼?我做錯了什麼?非常感謝。

編輯:

那輸出運行在終端這個PHP腳本時:

[ 「一」, 「B」, 「C」, 「d」, 「E」]

據我所知這不是一個JSON結構,但我再次知道它幾乎沒有。

+1

如果您在iOS上使用該頁面地址發出URL請求,您將基本上獲得編碼爲json的數組,然後您將其解碼爲iOS上的NSArray – Daniel

+1

爲什麼您認爲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"] 

正如@指出Jason McClellan,第二個也是正確的。

所以,是的,你正在做一個正確的事情來編碼一個數組可讀的JavaScript的東西。

其他函數是json_decode($json);,它顯然解碼json。 此處的文檔:http://php.net/manual/en/function.json-encode.php

+2

JSON不需要key => value對。 JSON只是JS語法。在這個例子中,他編碼了一個數組,所以他得到的是一個數組的JS語法。如果他使用關聯數組,他會得到一個匿名對象的JS語法,這是我們大多數人在想到JSON時習慣看到的東西。 –

+1

啊......我的錯誤,謝謝你,看到更新的答案 – jammypeach

相關問題