2014-03-12 149 views
1

我想將我從mysql數據庫中選擇的數據轉換爲json格式。我使用Joomla 3.2.1,以便我可以將它用於我的iOS應用程序。Joomla數據庫陣列json轉換

我收到JResponse附近的語法錯誤意外Jresponse t_string錯誤。

如果有人能指出我正確的方向,我將不勝感激。 謝謝。

<?php 
    defined ('_JEXEC') or die(''); 

    require_once JPATH_SITE.'/components/com_content/helpers/route.php'; 
    jimport('joomla.application.component.controller'); 
    jimport('joomla.appliction.component.model'); 


$db = JFactory::getDbo(); 

// Create a new query object. 
$query = $db->getQuery(true); 
$query->select($db->quoteName(array('order_id', 'store_name', 'invoice', 'firstname'))); 
$query->from($db->quoteName('#__mynicetable')); 
$query->where($db->quoteName('order_id')); 
$query->order('order_id ASC'); 
$db->setQuery($query); 
$row=$db->loadRowList(); 
print_r($row); 

$data =array ($row); 
$document= JFactory::getDocument; 

$document-> setMimetEncoding('application/json') 
JResponse::setHeader('Content-Disposition', 'attachment;filename="'.$view-    >getName().'.json"'); 

echo json_encode($data); 

回答

1

你的代碼和缺少的分號有一些空白。嘗試使用以下內容:

$data = array($row); 
$app = JFactory::getApplication(); 
$document = JFactory::getDocument(); 

$document->setMimetEncoding('application/json'); 
$app->setHeader('Content-Disposition', 'attachment;filename="my-scratchcomponent.json"'); 

echo json_encode($data); 
+0

謝謝你。我嘗試了你提交的代碼,但它給了我致命錯誤:未定義的類常量'getDocument。 –

+0

好的,所以你使用的代碼是在外部使用,而不是在Joomla網站中使用?如果你,你需要導入框架才能使用Joomla API。要導入框架,看看這個:http://stackoverflow.com/a/15042883/1362108 – Lodder

+0

我實際上已經開始從頭開始創建一個組件。我已經把這段代碼放在我的組件my-scratchcomponent.php中。它安裝在我的joomla網站上。我沒有在外部使用它。希望這使得它更清晰。 –