php– 如何解决org.json.JSONException中的错误?

php– 如何解决org.json.JSONException中的错误?,第1张

概述我正在创建一个可以通过将ID号放在editText中来检索单词的应用程序.我继续得到这个错误.如何解决这个问题呢?org.json.JSONException:{“server_response”:“Bird”}没有值这是我的主Activity.javapackagecom.example.keam.lastnato;importandroid.app.Activity;importand

我正在创建一个可以通过将ID号放在editText中来检索单词的应用程序.我继续得到这个错误.如何解决这个问题呢? org.Json.JSONException:{“server_response”:“Bird”}没有值

这是我的主Activity.java

package com.example.keam.lastnato;import androID.app.Activity;import androID.os.AsyncTask;import androID.os.Bundle;import androID.util.Log;import androID.vIEw.VIEw;import androID.Widget.button;import androID.Widget.EditText;import androID.Widget.TextVIEw;import androID.Widget.Toast;import org.apache.http.httpentity;import org.apache.http.httpResponse;import org.apache.http.nameValuePair;import org.apache.http.clIEnt.httpClIEnt;import org.apache.http.clIEnt.entity.UrlEncodedFormEntity;import org.apache.http.clIEnt.methods.httpPost;import org.apache.http.impl.clIEnt.DefaulthttpClIEnt;import org.apache.http.message.BasicnameValuePair;import org.Json.JsONException;import org.Json.JsONObject;import java.io.BufferedReader;import java.io.inputStream;import java.io.inputStreamReader;import java.util.ArrayList;public class MainActivity extends Activity {String ID;String word;inputStream is=null;String result=null;String line=null;String data ="";TextVIEw disp;String url = "http://192.168.0.10/checkpls.PHP";@OverrIDeprotected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_main);    final EditText e_ID=(EditText) findVIEwByID(R.ID.editText1);    button select=(button) findVIEwByID(R.ID.button1);    disp = (TextVIEw)findVIEwByID(R.ID.textVIEw);    select.setonClickListener(new VIEw.OnClickListener() {        @OverrIDe        public voID onClick(VIEw v) {            // Todo auto-generated method stub            ID = e_ID.getText().toString();            select();        }    });}public voID select(){    class readThis extends AsyncTask<String, VoID, String> {        protected String doInBackground(String... params){ArrayList<nameValuePair> nameValuePairs = new ArrayList<nameValuePair>();            nameValuePairs.add(new BasicnameValuePair("ID",ID));            try            {                httpClIEnt httpclIEnt = new DefaulthttpClIEnt();                httpPost httppost = new httpPost(params[0]);    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));                httpResponse response = httpclIEnt.execute(httppost);                httpentity entity = response.getEntity();                is = entity.getContent();                Log.e("pass 1", "connection success ");            }            catch(Exception e)            {                Log.e("Fail 1", e.toString());           Toast.makeText(getApplicationContext(), "InvalID IP Address",                        Toast.LENGTH_LONG).show();            }            try            {                BufferedReader reader = new BufferedReader                        (new inputStreamReader(is,"iso-8859-1"),8);                StringBuilder sb = new StringBuilder();                while ((line = reader.readline()) != null)                {                    sb.append(line);                }                is.close();                result = sb.toString();                Log.e("pass 2", "connection success ");            }            catch(Exception e)            {                Log.e("Fail 2", e.toString());            }            try            {                JsONObject Json_data = new JsONObject(result);                word = Json_data.getString(result);                Toast.makeText(getBaseContext(), "name: " + word,                 Toast.LENGTH_SHORT).show();            }            catch(JsONException e)            {                Log.e("Fail 3", e.toString());                Log.e("log_tag", "Failed data was: " + result);            }            return word;        }    }    readThis hello = new readThis();    hello.execute(new String[] {url});}}

这是我的activity_main.xml

<?xml version="1.0" enCoding="utf-8"?><relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"xmlns:tools="http://schemas.androID.com/tools"androID:layout_wIDth="match_parent"androID:layout_height="match_parent"androID:paddingBottom="@dimen/activity_vertical_margin"androID:paddingleft="@dimen/activity_horizontal_margin"androID:paddingRight="@dimen/activity_horizontal_margin"androID:paddingtop="@dimen/activity_vertical_margin"tools:context="com.example.keam.lastnato.MainActivity"><EditText    androID:ID="@+ID/editText1"    androID:layout_wIDth="wrap_content"    androID:layout_height="wrap_content"    androID:layout_alignParenttop="true"    androID:layout_centerHorizontal="true"    androID:layout_margintop="39dp"    androID:padding="11dp"    androID:hint="ID"    androID:ems="10"    androID:inputType="number">    <requestFocus /></EditText><button    androID:ID="@+ID/button1"    androID:layout_wIDth="wrap_content"    androID:layout_height="wrap_content"    androID:layout_below="@+ID/editText1"    androID:layout_centerHorizontal="true"    androID:layout_margintop="24dp"    androID:onClick="parseJsON"    androID:padding="11dp"    androID:text="Select" /><TextVIEw    androID:layout_wIDth="wrap_content"    androID:layout_height="wrap_content"    androID:text="New Text"    androID:ID="@+ID/textVIEw"    androID:layout_centerVertical="true"    androID:layout_centerHorizontal="true" /> </relativeLayout>

这是我的PHP文件“checkpls.PHP”

 <?PHP$con = MysqLi_connect("localhost", "root", "1234", "check") or dIE ("Error ".MysqLi_error($con));$ID = $_POST['ID'];$sql = "SELECT * FROM tblcheckword where ID like '$ID';";$result = MysqLi_query($con, $sql) or dIE("Error in selecting ".MysqLi_error($con));$response = array();if(MysqLi_num_rows($result) > 0){    while($row = MysqLi_fetch_array($result))    {        array_push($response, array("ID"=>$row[0],"word"=>$row[1],"meaning"=>$row[2]));        $retrIEve = $row[1];    }    echo Json_encode(array("server_response" => $retrIEve));}else{    echo "RetrIEve Failed";}MysqLi_close($con);?>

这是我在WAMP phpmyadmin中的tblcheckword

数据库名称=“检查”

这是我的logcat错误.

08-19 14:10:48.367 23305-23536/com.example.keam.lastnato E/AndroIDRuntime: FATAL EXCEPTION: AsyncTask #1                                                                       Process: com.example.keam.lastnato, PID: 23305                                                                       java.lang.RuntimeException: An error occured while executing doInBackground()                                                                           at androID.os.AsyncTask.done(AsyncTask.java:300)                                                                           at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)                                                                           at java.util.concurrent.FutureTask.setException(FutureTask.java:222)                                                                           at java.util.concurrent.FutureTask.run(FutureTask.java:242)                                                                           at androID.os.AsyncTask$SerialExecutor.run(AsyncTask.java:231)                                                                           at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)                                                                           at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)                                                                           at java.lang.Thread.run(Thread.java:841)                                                                        Caused by: java.lang.RuntimeException: Can't create handler insIDe thread that has not called Looper.prepare()                                                                           at androID.os.Handler.<init>(Handler.java:200)                                                                           at androID.os.Handler.<init>(Handler.java:114)                                                                           at androID.Widget.Toast$TN.<init>(Toast.java:372)                                                                           at androID.Widget.Toast.<init>(Toast.java:105)                                                                           at androID.Widget.Toast.makeText(Toast.java:264)                                                                           at com.example.keam.lastnato.MainActivityreadThis.doInBackground(MainActivity.java:120)                                                                           at com.example.keam.lastnato.MainActivityreadThis.doInBackground(MainActivity.java:61)                                                                           at androID.os.AsyncTask.call(AsyncTask.java:288)                                                                           at java.util.concurrent.FutureTask.run(FutureTask.java:237)                                                                           at androID.os.AsyncTask$SerialExecutor.run(AsyncTask.java:231)                                                                            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)                                                                            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)                                                                            at java.lang.Thread.run(Thread.java:841)    08-19 14:10:49.969 23305-23536/com.example.keam.lastnato I/Process: Sending signal. PID: 23305 SIG: 9
@H_403_42@解决方法:

更改word = Json_data.getString(result); to word = Json_data.getString(“server_response”);

更新:

public voID select(){    readThis hello = new readThis();    hello.execute(new String[] {url});}private class ReadThis extends AsyncTask<String, VoID, String> {        @OverrIDe        protected String doInBackground(String... params) {            ArrayList<nameValuePair> nameValuePairs = new ArrayList<nameValuePair>();            nameValuePairs.add(new BasicnameValuePair("ID",ID));            try            {                httpClIEnt httpclIEnt = new DefaulthttpClIEnt();                httpPost httppost = new httpPost(params[0]);    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));                httpResponse response = httpclIEnt.execute(httppost);                httpentity entity = response.getEntity();                is = entity.getContent();                Log.e("pass 1", "connection success ");            }            catch(Exception e)            {                Log.e("Fail 1", e.toString());           Toast.makeText(getApplicationContext(), "InvalID IP Address",                        Toast.LENGTH_LONG).show();            }            try            {                BufferedReader reader = new BufferedReader                        (new inputStreamReader(is,"iso-8859-1"),8);                StringBuilder sb = new StringBuilder();                while ((line = reader.readline()) != null)                {                    sb.append(line);                }                is.close();                result = sb.toString();                Log.e("pass 2", "connection success ");            }            catch(Exception e)            {                Log.e("Fail 2", e.toString());            }            }            return result ;        }        @OverrIDe        protected voID onPostExecute(String result) {            try        {            JsONObject Json_data = new JsONObject(result);            word =  Json_data.getString("server_response");            Toast.makeText(getBaseContext(), "name: " + word,             Toast.LENGTH_SHORT).show();        }        catch(JsONException e)        {            Log.e("Fail 3", e.toString());            Log.e("log_tag", "Failed data was: " + result);        }        }        @OverrIDe        protected voID onPreExecute() {}        @OverrIDe        protected voID onProgressUpdate(VoID... values) {}    }
总结

以上是内存溢出为你收集整理的php – 如何解决org.json.JSONException中的错误?全部内容,希望文章能够帮你解决php – 如何解决org.json.JSONException中的错误?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1115152.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存