簡體   English   中英

java.lang.String無法轉換為JSONObject

[英]java.lang.String cannot be converted to JSONObject

以下是我用於訪問數據庫的代碼,但出現以下錯誤:

org.json.JSONException:值

       public void onClick(View v) {
            // TODO Auto-generated method stub

            tim = time.getText().toString();
            na = name.getText().toString();
            da = date.getText().toString();

            insert();
        }
    });
}}

public void insert()
{
    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

    nameValuePairs.add(new BasicNameValuePair("time",tim));
    nameValuePairs.add(new BasicNameValuePair("name",na));
    nameValuePairs.add(new BasicNameValuePair("date",da));

    try
    {
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://10.0.2.2/mts.php");
        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 + "\n");
        }
        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);
        code=(json_data.getInt("code"));

        if(code==1)
        {
            Toast.makeText(getBaseContext(), "Inserted Successfully",
                    Toast.LENGTH_SHORT).show();
        }
        else
        {
            Toast.makeText(getBaseContext(), "Sorry, Try Again",
                    Toast.LENGTH_LONG).show();
        }
    }
    catch(Exception e)
    {
        Log.e("Fail 3", e.toString());
    }
}

這是PHP代碼錯誤是:

不建議使用:mysql_connect():不建議使用mysql擴展,以后將刪除:使用mysqli或PDO

警告:mysql_connect()第7行

<?php
    $host='127.0.0.1';
    $uname='root';
    $pwd='password';
    $db="android";

enter code here

$con = MySQLi($host,$uname,$pwd) or die("connection failed");
    mysql_select_db($db,$con) or die("db selection failed");

    $id=$_REQUEST['time'];
    $name=$_REQUEST['name'];
    $date=$_REQUEST['date'];

    $flag['code']=0;

    if($r=mysql_query("insert into sample values('$time','$name',$'date') ",$con))
    {
        $flag['code']=1;
        echo"";
    }

    print(json_encode($flag));
    mysql_close($con);
?>

日志貓

548-548 / com.example.gurucharan.mts D / dalvikvm:不晚啟用CheckJNI(已啟用)
548-548 / com.example.gurucharan.mts D / dalvikvm:GC_FOR_ALLOC釋放123K,3%釋放9218K / 9415K,暫停60ms
548-548 / com.example.gurucharan.mts I / dalvikvm-heap:將堆(frag大小寫)增加到12.827MB以分配3940072字節
548-554 / com.example.gurucharan.mts I / dalvikvm:threadid = 3:對信號3作出反應
548-551 / com.example.gurucharan.mts D / dalvikvm:GC_CONCURRENT釋放了1K,2%釋放了13065K / 13319K,暫停了5ms + 16ms
548-554 / com.example.gurucharan.mts I / dalvikvm:將堆棧跟蹤寫入'/data/anr/traces.txt'
548-554 / com.example.gurucharan.mts I / dalvikvm:threadid = 3:對信號3作出反應
548-554 / com.example.gurucharan.mts I / dalvikvm:將堆棧跟蹤寫入'/data/anr/traces.txt'
548-554 / com.example.gurucharan.mts I / dalvikvm:threadid = 3:對信號3作出反應
548-554 / com.example.gurucharan.mts I / dalvikvm:將堆棧跟蹤寫入'/data/anr/traces.txt'
548-554 / com.example.gurucharan.mts I / dalvikvm:threadid = 3:對信號3作出反應
548-554 / com.example.gurucharan.mts I / dalvikvm:將堆棧跟蹤寫入'/data/anr/traces.txt'
548-548 / com.example.gurucharan.mts D / libEGL:已加載/system/lib/egl/libGLES_android.so
548-548 / com.example.gurucharan.mts D / libEGL:已加載/system/lib/egl/libEGL_emulation.so
548-548 / com.example.gurucharan.mts D /:HostConnection :: get()建立新的主機連接0xd77e8,TID 548
548-548 / com.example.gurucharan.mts D / libEGL:已加載/system/lib/egl/libGLESv1_CM_emulation.so
548-548 / com.example.gurucharan.mts D / libEGL:已加載/system/lib/egl/libGLESv2_emulation.so
548-554 / com.example.gurucharan.mts I / dalvikvm:threadid = 3:對信號3作出反應
548-554 / com.example.gurucharan.mts I / dalvikvm:將堆棧跟蹤寫入'/data/anr/traces.txt'
548-548 / com.example.gurucharan.mts W / EGL_emulation:eglSurfaceAttrib未實現
548-548 / com.example.gurucharan.mts D / OpenGLRenderer:啟用調試模式0
548-554 / com.example.gurucharan.mts I / dalvikvm:threadid = 3:對信號3作出反應
548-554 / com.example.gurucharan.mts I / dalvikvm:將堆棧跟蹤寫入'/data/anr/traces.txt'
548-554 / com.example.gurucharan.mts I / dalvikvm:threadid = 3:對信號3作出反應
548-554 / com.example.gurucharan.mts I / dalvikvm:將堆棧跟蹤寫入'/data/anr/traces.txt'
548-554 / com.example.gurucharan.mts I / dalvikvm:threadid = 3:對信號3作出反應
548-554 / com.example.gurucharan.mts I / dalvikvm:將堆棧跟蹤寫入'/data/anr/traces.txt'
548-554 / com.example.gurucharan.mts I / dalvikvm:threadid = 3:對信號3作出反應
548-554 / com.example.gurucharan.mts I / dalvikvm:將堆棧跟蹤寫入'/data/anr/traces.txt'
548-554 / com.example.gurucharan.mts I / dalvikvm:threadid = 3:對信號3作出反應
548-554 / com.example.gurucharan.mts I / dalvikvm:將堆棧跟蹤寫入'/data/anr/traces.txt'
548-548 / com.example.gurucharan.mts E / pass 1:連接成功
548-548 / com.example.gurucharan.mts E / pass 2:連接成功
548-548 / com.example.gurucharan.mts E / Fail 3:org.json.JSONException:值

查看我如何使用php編碼進行插入

<?php
$host="host"; //replace with database hostname
$username="example"; //replace with database username
$password="examplepass"; //replace with database password
$db_name="empinfo"; //replace with database name
 // i used mysql_connect
$con = mysql_connect($host,$username,$password) or die("connection failed");
mysql_select_db($db_name,$con) or die("db selection failed");

if(isset($_REQUEST)){
$topic=$_REQUEST['topic'];
$text=$_REQUEST['picname'];
$aid=$_REQUEST['aid'];
$date=$_REQUEST['date'];}

$texttt = "Picture";
$flag['code']=0;
$last_ID = 0;
$adminpic = "ASd";

// also mentioned the fields value of table in insert query

if($r=mysql_query("INSERT INTO `UPicture` (`ID` ,`AID` ,`ImageName` ,`Topic` ,`Date` ) VALUES (NULL, '$aid', '$text', '$topic', '$date'); ",$con))
{
$flag['code']=1;
$last_ID = mysql_insert_id();
}

$r=mysql_query("INSERT INTO `front_list` (`ID` ,`AID` ,`posttype` ,`date` ,`MID` ,`Adminpic`)VALUES (NULL , '$aid', '$texttt', '$date', '$last_ID', '$adminpic'); ",$con);

echo(json_encode($flag));
mysql_close($con);
?>

注意:

對於新版本的php,請在<?php片段后添加此行

error_reporting(E_ALL ^ E_DEPRECATED);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM