2013-03-05 96 views
2

我有一個PHP文件中,我相信這行麻煩搞清楚是否安裝或不JSON

sendResponse(200, json_encode($result)); 

失敗,因爲從我的選擇值(從程序早期的教)沒有得到傳遞迴我的應用程序(我檢查了連接和用戶,它都是正確的)。

我使用php版本5.3.10,它沒有提到配置中的JSON,我將phpinfo與在線服務器進行比較,在phpinfo()中我看到JSON支持=啓用,JSON版本= 1.2。 1。如果安裝了JSOn,我想這可能會起作用。不過我被告知JSON自動帶有php版本5+。我想知道這是否屬實,或者由於我的本地主機服務器上未啓用JSON,這可能會失敗。謝謝

JSONParser parser = new JSONParser("http://www.myhost.co.nf/firearm/", this); 

     parser.setPostData(requestParams.toString().getBytes()); 
     parser.setRequestType(true); 
     parser.start(); 
    } 

    public void onResponse(String data, int code) { 
     // TODO Auto-generated method stub 
     final Vector firearmInfo = jasonParser.parseFirearmResponse(data); 
     if(firearmInfo.size() > 0){ 
      UiApplication.getUiApplication().invokeLater(new Runnable() { 
       public void run() { 
        // TODO Auto-generated method stub 
        removeLoader(); 
        UiApplication.getUiApplication().pushScreen(new FirearmSearchResultScreen(firearmInfo)); 
       } 
      }); 
     }else{ 
      UiApplication.getUiApplication().invokeLater(new Runnable() { 
       public void run() { 
        // TODO Auto-generated method stub 
        removeLoader(); 
        Dialog.alert("No Results found."); 
       } 
      }); 
     } 
    } 
+0

到底發生了什麼問題,你能澄清會發生什麼嗎?你有什麼錯誤嗎? – 2013-03-05 20:54:49

+3

只測試一個'<?php echo json_encode(array(「a」=>「b」)); ?>,你會看到編碼功能是否正常工作。 – 2013-03-05 20:57:55

+0

@Pekka웃簡單...我有一個應用程序,它去webhost ...運行一個選擇...並返回我的價值......這工作完美無暇的服務器上,我嘗試除了在本地主機服務器上。所有的憑據都是正確的,用戶配置正確,where子句得到滿足...但沒有任何...發佈到結果數組,結果的空數組傳回給我的應用程序,我相信我寫的是因爲我的程序給了我一個「未找到結果」的錯誤(請參閱該代碼的第一條消息) – kemnet 2013-03-05 21:05:20

回答

7

在PHP 5.2.0中,JSON擴展捆綁並默認編譯成PHP。

由於轉引自:http://www.php.net/manual/en/json.installation.php

因此,有沒有需要檢查的現代PHP版本JSON的兼容性。

+0

那麼爲什麼程序在這條線上失敗?另外我已經讀過json可能已安裝但未啓用此外phpinfo文件不會顯示有關JSON的任何信息 – kemnet 2013-03-06 10:08:38

+0

嘗試通過使用error_log(var_export($ result,true))將var_dumping結果或日誌記錄結果記錄到日誌文件。 ''' – Luceos 2013-03-06 10:30:10

-1

儘管您的問題與您提出的問題不同,並且您在其中一條評論中發現了問題,但您並未更改該問題。

此答案解決了您的問題。我昨天也遇到了同樣的情況:

查詢從本地服務器收集從MySQL到PHP的JSON數據,但是當移植到生產服務器時,聯機數組返回空。事實證明,MySQL版本的生產服務器是5.6xx和本地服務器5.7xx。這個區別就是答案。根據this SitePoint article,MySQL開始支持JSON數據。

答:

  • 更新你的MySQL到5.7+(問題解決)

OR

+0

嘿!爲什麼downvote一個難題的答案沒有人找到解決辦法?我討厭堆棧溢出!我離開這裏。它解釋了爲什麼70%以上的用戶只回答一個問題並退出。我會爲我的一些論壇貢獻我的汗水和淚水。 – 2017-09-26 12:19:22