我试图实现一个简单的android应用程序,在这个应用程序中,我试图通过php站点检索数据库值,但是下面的代码在解析json数据时产生错误。
我的php文件编码json如下
getdeals.php
<?php
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="user"; // Database name
$tbl_name="deal"; // Table name
// Connect to server and select databse.
mysql_connect("$host","$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$q=mysql_query("SELECT * FROM deal");
while($e=mysql_fetch_assoc($q))
$output[]=$e;
print(json_encode($output));
mysql_close();
?>
Android类如下
public class JsonConnect extends Activity {
InputStream is;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_json_connect);
addListenerOnbutton();
Thread t = new Thread() {
public void run() {
getDeals();
}
};
t.start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_json_connect, menu);
return true;
}
public void addListenerOnbutton() {
final Context context = this;
Button home = (Button)findViewById(R.id.button1);
home.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
public void getDeals() {
String result = "";
//the year data to send
//ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
//nameValuePairs.add(new BasicNameValuePair("year","1980"));
//http post
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://10.0.2.2/dealnow/getdeals.php");
//httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}
catch(Exception e){
Log.e("log_tag", "Error in http connection "+e.toString());
}
//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");
}
is.close();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
//parse json data
try{
JSONArray jArray = new JSONArray(result);
for(int i=0;i<jArray.length();i++){
JSONObject json_data = jArray.getJSONObject(i);
Log.i("log_tag","dealid: "+json_data.getString("deal_id")+
", hotel name: "+json_data.getString("hotel_name")+
", valid date: "+json_data.getInt("valid_date")+
", location: "+json_data.getString("location")+
", website: "+json_data.getString("website")
);
}
}
catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}
}
}
最后是logcat输出
05-11 01:23:08.767: D/dalvikvm(435): GC_EXPLICIT freed 24K, 4% free 6582K/6855K, paused 7ms+4ms
05-11 01:29:24.164: V/TLINE(497): new: android.text.TextLine@4065aa30
05-11 01:29:24.757: D/dalvikvm(497): GC_CONCURRENT freed 115K, 4% free 6560K/6791K, paused 5ms+14ms
05-11 01:29:24.764: E/log_tag(497): Error parsing data org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONArray
05-11 01:29:24.844: V/TLINE(497): new: android.text.TextLine@4065d8e0
05-11 01:34:12.147: D/dalvikvm(497): GC_EXPLICIT freed 48K, 4% free 6524K/6791K, paused 7ms+3ms
如何获得表的所需值
请帮忙。
我正在创建一个应用程序,其中用户输入数据进行搜索,然后应用程序将其发送到服务器,然后服务器将搜索结果发送回客户端。 我得到了错误,我不能理解它的意思。我从服务器得到确切的结果。 这是我的网络代码从那里的应用程序和这里是链接到完整的代码 这是我的服务器端代码 我还更改了echo json_编码($json_输出);打印(json_编码($json_输出));但产出仍然没有变化 这是我从logcat得
我有一个实体User,它有两个Data类型的字段。 我有一个带有save()方法的Controller,它将用户的数据保存到postgesql数据库中。 我有一个JSON,我将它发送到controller { "name":"Max "," createdOn":"2019-07-26 11:13:39 "," modified on ":" 2019-07-26 11:13:39 " } 最后在
E/AndroidRuntime:FATAL EXCEPTION:主进程:com.example.ahsan.ethlon2,PID:11641java.lang.NumberFormatExcture:对于输入字符串:"" 在java.lang.Integer.parseInt(Integer.java:608) 在java.lang.Integer.parseInt(Integer.java:
问题内容: 这是列表活动。 清单活动: 基本适配器类: 的PHP: 我的问题是,我尝试解析字符串,它的值就像我解析这种类型的值时一样,它没有显示结果,并给出了logcat。 日志猫: 当我解析简单的值并且更改数据库时,它给我很好的结果。但是,我需要解析该值。请帮帮我。谢谢 问题答案: 如您所说,您无法解析类似于“’B-‘,’O-‘”的json字符串,但是您可以成功解析诸如“ B,O”的字符串。 这
问题内容: 我的项目有一个WCF,可以从数据库获取记录并以JSON格式返回,如下所示: 我也有一个Android应用程序来使用JSON,这是我的代码: 我在处设置了断点,并从中得到了以下消息: 我试图复制JSON字符串并粘贴到在线JSON解析器网站http://jsonviewer.stack.hu/上,它解析得很好。请帮我解决这个问题! 问题答案: 在您的json中,的值包含在其中,因此将其视为