我在Joomla應用程序中使用jQuery小部件。小部件的數據必須是一個對象並且採用json格式。當我從數據庫中直接檢索數據而沒有Joomla框架的數據庫功能時,我能夠做到這一點。JSON數據對象還是數組,如何檢查?
當然,我確實希望在Joomla MVC結構中做到這一點,並且我想利用Joomla數據庫功能。做這件事時,小部件中沒有輸出。
我之前有過這種情況時,作爲一個數組傳遞,它不會顯示數據,當它作爲一個對象傳遞時,它會。
我的問題是這樣的: 直接從數據庫生成數據並使用Joomla數據庫結構產生完全相同的結果,當回顯到屏幕,但一個顯示在網格中,另一個不是。前一個問題也是如此,但在這種情況下,我在相同的數據上調用了兩次json_encode,但顯示的數據完全沒有區別,但其中一個可以工作,另一個不可以。
我的問題: 我不熟悉JSON數據,但有沒有辦法來檢查數據是表示爲對象還是數組?這可能是一個非常愚蠢的問題,但在我看來,數據中必然存在差異,並且只是看着它,你無法看到它,或者我錯過了什麼?
UPDATE: 感謝您的答覆。我已經坐了好幾天了!它現在與Joomla數據庫函數一起工作,似乎除了json編碼之外,我的代碼還有一個小問題,但是當我在模型和控制器中使用json_encode之前,它們看起來完全一樣,因此雙JSON編碼它,但沒有工作,但當在Joomla之外生成時,它工作(單次使用json_encoding)。看着它們在Joomla之外生成,並且在雙JSON編碼之後,兩個看起來都是一樣的,因此我看不出輸出的問題,與現在一樣。
感謝有關[]
和{}
的信息,這是有見地的,但這裏是我的代碼示例:
[{"TotalRows":2,"Rows":[{"login_id":"122","cust_id":"0","shop_id":"0","nickname":null,"shopicon":null,"website":null,"shopname":null, "username":"","password":"","dob":"0000-00-00","comments":null},
{"login_id":"25","cust_id":"57","shop_id":"42","nickname":"qwerty","shopicon":"shop.ico","website":"http:\/\/www.shop.co.uk","shopname":"Shop","username":"eqweq","password":"wqewqeq","dob":"1981-12-14","comments":"qwqeqeqw"}]}]
我怎樣才能從這個判斷它是否是一個數組或對象?
{} = object,[] = array。樣本會很有幫助。此外,你可以檢查這裏的語法:http://jsonlint.com/ –
看起來很體面直觀... Joomla數據庫結構並不困難。你需要使用'$ db-> setQuery($ query);'和'$ result = $ db-> loadObject()';現在你已經有了一個php對象。簡單地使用echo'json_encode($ result);'將輸出一個json對象給客戶端,然後可以使用'$ .parseJSON'來解析,或者如果你使用的是ajax,'set the dataType =「json」'和它會自動解析它。那麼你可以通過'obj.prop'來訪問對象屬性。 – Ohgodwhy
詳細闡述@Diodeus所說的... {}是一個對象,但是,它也可以是一個字符串,如果它封裝在''''中。這是一個JSON字符串,不是一個對象。 – Ohgodwhy