2013-03-05 50 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