我正在尝试创建一个简单的android应用。我正在使用wamp MySQL创建数据库和服务器。 android应用程序应该按ID提取用户信息。但是,当我尝试将其纳入Android应用程序时会出现此问题。这是我第一次使用JSON。非常感谢您的帮助。
public class SelectActivity extends Activity {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_select);
Button button = (Button) findViewById(R.id.button1);
StrictMode.setThreadPolicy(policy);
button.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view)
{
String result = null;
InputStream is = null;
EditText editText = (EditText)findViewById(R.id.e1);
String v1 = editText.getText().toString();
EditText editText1 = (EditText)findViewById(R.id.e2);
EditText editText2 = (EditText)findViewById(R.id.e3);
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("f1",v1));
try
{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://192.168.0.16/view/select.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
Log.e("log_tag", "connection success ");
// Toast.makeText(getApplicationContext(), "pass", Toast.LENGTH_SHORT).show();
}
catch(Exception e)
{
Log.e("log_tag", "Error in http connection "+e.toString());
Toast.makeText(getApplicationContext(), "Connection fail", Toast.LENGTH_SHORT).show();
}
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null)
{
sb.append(line + "\n");
// Toast.makeText(getApplicationContext(), "Input Reading pass", Toast.LENGTH_SHORT).show();
}
is.close();
result=sb.toString();
}
catch(Exception e)
{
Log.e("log_tag", "Error converting result "+e.toString());
Toast.makeText(getApplicationContext(), " Input reading fail", Toast.LENGTH_SHORT).show();
}
//parse json data
try{
JSONObject object = new JSONObject(result);
String ch=object.getString("re");
if(ch.equals("success"))
{
JSONObject no = object.getJSONObject("0");
//long q=object.getLong("f1");
String w= no.getString("f2");
long e=no.getLong("f3");
editText1.setText(w);
String myString = NumberFormat.getInstance().format(e);
editText1.setText(myString);
}
else
{
Toast.makeText(getApplicationContext(), "Record is not available.. Enter valid number", Toast.LENGTH_SHORT).show();
}
}
catch(JSONException e)
{
Log.e("log_tag", "Error parsing data "+e.toString());
Toast.makeText(getApplicationContext(), "JsonArray fail", Toast.LENGTH_SHORT).show();
}
}
});
}
}
XML文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/e1"
android:numeric="integer"
android:hint=" ID"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="SELECT" />
<EditText
android:id="@+id/e2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="name"/>
<EditText
android:id="@+id/e3"
android:hint="number"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
PHP代码
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysqli_select_db("ex1", $con);
$v1=$_REQUEST['f1'];
if($v1==NULL)
{
$r["re"]="Enter the number!!!";
print(json_encode($r));
die('Could not connect: ' . mysql_error());
}
else
{
$i=mysqli_query("select * from t1 where f1=$v1",$con);
$check='';
while($row = mysql_fetch_array($i))
{
$r[]=$row;
$check=$row['f1'];
}
if($check==NULL)
{
$r["re"]="Record is not available";
print(json_encode($r));
}
else
{
$r["re"]="success";
print(json_encode($r));
}
}
mysql_close($con);
?>
每当我运行代码时,它都会显示一条错误消息:
03-21 00:02:37.560 6068-6068 / com.example.user.database E / log_tag:
解析数据org.json.JSONException时出错:类型的值br
java.lang.String无法转换为JSONObject
最佳答案
记录您的JSON,您必须在html标签中获得响应。
尝试修复您的.php文件或尝试从JSON响应中filter html标签然后对其进行解析