org.json.JSONException:对没有商品价值 [英] org.json.JSONException: No value for item

查看:233
本文介绍了org.json.JSONException:对没有商品价值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我收到了没有找到{用户名:萨拉}值{用户名:约翰} JSONException 当我尝试使用Android应用程序来查看从MySQL数据库中的数据。

I get a No value for {"username":"sara"}{"username":"john"} JSONException when I attempt to view data from MySql database using android app.

  08-20 04:26:39.396: W/System.err(4732): org.json.JSONException: No value for {"username":"sara"}{"username":"john"}
  08-20 04:26:39.497: W/System.err(4732):   at org.json.JSONObject.get(JSONObject.java:354)
  08-20 04:26:39.497: W/System.err(4732):   at org.json.JSONObject.getJSONArray(JSONObject.java:544)
  08-20 04:26:39.517: W/System.err(4732):   at com.example.phpapp.ViewData$MyTask.doInBackground(ViewData.java:69)
  08-20 04:26:39.577: W/System.err(4732):   at com.example.phpapp.ViewData$MyTask.doInBackground(ViewData.java:1)
  08-20 04:26:39.606: W/System.err(4732):   at android.os.AsyncTask$2.call(AsyncTask.java:287)
  08-20 04:26:39.606: W/System.err(4732):   at java.util.concurrent.FutureTask.run(FutureTask.java:234)
  08-20 04:26:39.631: W/System.err(4732):   at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
  08-20 04:26:39.636: W/System.err(4732):   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
  08-20 04:26:39.636: W/System.err(4732):   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
  08-20 04:26:39.636: W/System.err(4732):   at java.lang.Thread.run(Thread.java:856)

PHP code

$con = mysql_connect($dbhost, $dbuser, $dbpass) or die("can't connect");
$db = mysql_select_db($dbname) or die("no such db name");
$query = "select username from users";
$result = mysql_query($query);
while($row=  mysql_fetch_array($result)){
    echo json_encode($row);
}

jsonArray

{"username":"sara"}{"username":"john"}

的Andr​​oid code

HttpResponse response = client.execute(post);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
BufferedReader br = new BufferedReader(new InputStreamReader(is));

String str = "";
while((str = br.readLine()) != null){
    s.append(str+"\n");
    mystr = s.toString();
}   

JSONObject object = new JSONObject(mystr);
JSONArray Jarray = object.getJSONArray(mystr);
for (int i = 0; i < Jarray.length(); i++) {
    JSONObject Jasonobject = Jarray.getJSONObject(i);
    st = Jasonobject.getString("username");
    alist.add(str);
}

如何解决此问题?谢谢

How to Solve this? Thanks

推荐答案

但问题是在这行

 JSONArray Jarray = object.getJSONArray(mystr);

其中, myStr中= {用户名:萨拉} {用户名:约翰} (从输入流中的数据)

所以在这里您试图访问一个JSON数组索引 myStr中从JSONObject的对象

So here you are trying to access a JSON Array with index mystr from JSONObject object

在技术上永远存在,因此它被赋予 JSONException:没有价值{用户名:萨拉} {用户名:约翰}

Which technically never exist so it is giving the JSONException: No value for {"username":"sara"}{"username":"john"}

解决方案

使用JJPA的答案,然后正确的PHP code

Correct PHP code using JJPA's Answer then

使用

JSONArray Jarray=new JSONArray(mystr);

这篇关于org.json.JSONException:对没有商品价值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆