Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';无法连接到db android,因为解析json时出错_Java_Php_Android_Json - Fatal编程技术网

Java Can';无法连接到db android,因为解析json时出错

Java Can';无法连接到db android,因为解析json时出错,java,php,android,json,Java,Php,Android,Json,我无法从我的网站连接并显示我的json,因为我收到一个错误: java.lang.String无法转换为JSONArray 代码如下: public class MainActivity extends Activity { /** Called when the activity is first created. */ private TextView results; @Override public void onCreate(Bundle savedIn

我无法从我的网站连接并显示我的json,因为我收到一个错误:

java.lang.String无法转换为JSONArray

代码如下:

public class MainActivity extends Activity
{
    /** Called when the activity is first created. */
    private TextView results;
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);

        results = (TextView) findViewById(R.id.results);
        results.setText(invioDati());
    }

    public String invioDati() {
        String risultati = "";
        String stringaFinale = "";

        ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
        nameValuePairs.add(new BasicNameValuePair("idnomerichiesto","1"));
        InputStream is = null;

        //HTTP post richiesta

        try {
            HttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost("http://www.davidedellai.net/jsonphp.php");
            httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpClient.execute(httpPost);
            HttpEntity entity = response.getEntity();
            is = entity.getContent();

        } catch (Exception e) {
            Toast.makeText(this, "Errore connessione", Toast.LENGTH_SHORT).show();
            e.printStackTrace();
        }
        if (is != null) {
            // converto la risposta in stringa
            try {
                BufferedReader reader = new BufferedReader(new InputStreamReader(is, "utf-8"), 8);
                StringBuilder sb = new StringBuilder();
                String line = null;
                while ((line = reader.readLine()) != null) {
                    sb.append(line + "\n");
                }
                is.close();
                risultati = sb.toString();
            }catch (Exception e) {
                // errore conversione in stringa
                Toast.makeText(this, "Errore stringa "+e.toString(), Toast.LENGTH_SHORT).show();
                e.printStackTrace();
            }

            // parsing dei dati dal json
            try {
                JSONArray jArray = new JSONArray(risultati);
                for (int i=0;i<jArray.length();i++){
                    JSONObject json_data = jArray.getJSONObject(i);
                    Log.i("Test", "post_title " + json_data.getString("post_title"));
                    stringaFinale = json_data.getString("post_title") + " " + (json_data.getString("post_content"));

                }
            } catch(JSONException e) {
                //errore parsing data json
                Toast.makeText(this, "Errore parsing json", Toast.LENGTH_SHORT).show();
                e.printStackTrace();
            }
        } else {
            // null quindi nessuna risposta
            Toast.makeText(this, "Null", Toast.LENGTH_SHORT).show();

        }

        return stringaFinale;
    }
}
公共类MainActivity扩展活动
{
/**在首次创建活动时调用*/
私有文本视图结果;
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
StrictMode.ThreadPolicy policy=新建StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(策略);
结果=(TextView)findViewById(R.id.results);
结果:setText(invioDati());
}
公共字符串invioDati(){
字符串risultati=“”;
字符串stringaFinale=“”;
ArrayList nameValuePairs=新的ArrayList();
添加(新的BasicNameValuePair(“idnomerichiesto”,“1”);
InputStream=null;
//HTTP-post-richiesta
试一试{
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(“http://www.davidedellai.net/jsonphp.php");
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
HttpResponse response=httpClient.execute(httpPost);
HttpEntity=response.getEntity();
is=entity.getContent();
}捕获(例外e){
Toast.makeText(这是“错误连接”,Toast.LENGTH_SHORT).show();
e、 printStackTrace();
}
如果(is!=null){
//斯特林加里斯珀斯塔酒店
试一试{
BufferedReader reader=新的BufferedReader(新的InputStreamReader(is,“utf-8”),8;
StringBuilder sb=新的StringBuilder();
字符串行=null;
而((line=reader.readLine())!=null){
sb.追加(第+行“\n”);
}
is.close();
risultati=sb.toString();
}捕获(例外e){
//stringa中的一个错误
Toast.makeText(这是“Errore stringa”+e.toString(),Toast.LENGTH_SHORT).show();
e、 printStackTrace();
}
//解析dei-dati-dal-json
试一试{
JSONArray jArray=新JSONArray(risultati);

对于(int i=0;我可以打印通过php发送的json结果吗?可能是因为您的json无效,因为您可以在php标记之前/之后使用DOM字符(或空格,或任何可以伪造json响应的字符)。您的JSON可能包含无效字符。请尝试使用各种JSON_encode标志对字符串进行编码。例如,
JSON_encode(数组($output),JSON_HEX_APOS)
将解析
$output
中的任何撇号。有关可用标记的完整列表,请参阅手册。这是PHP似乎工作正常的输出,请您提供java错误的完整堆栈,在创建JSON阵列之前,您是否也可以检查risultati的内容?没有任何结果:(
<?php 
// parametri del database 
$db_host = "localhost"; 
$db_user = "user"; 
$db_password = ""; 
$db_name = "mydb"; 
$db = mysql_connect($db_host, $db_user, $db_password); 
if ($db == FALSE) 
die ("Errore nella connessione. Verificare i parametri..."); 
mysql_select_db($db_name, $db) 
or die ("Errore nella selezione del database. Verificare i parametri..."); 
$q=mysql_query("SELECT post_name, post_content FROM avwp_posts WHERE post_status = 'publish' "); 
while($e=mysql_fetch_assoc($q)) 
$output[]=$e; 

print json_encode(array($output)); 

mysql_close();

?>