Php 如何在我的Android应用程序中解码JSON值?

Php 如何在我的Android应用程序中解码JSON值?,php,android,json,Php,Android,Json,大家好,我正在尝试将JSON值解码到我的Android应用程序中,但我不确定我的代码中有什么地方做错了 这是我的PHP文件: <?php ... echo json_encode($mostrar_player); ... ?> 试一试 如果需要数组,请尝试 <?php echo json_encode(array("data" => $mostra_player)); ?> JSONObject json = n

大家好,我正在尝试将JSON值解码到我的Android应用程序中,但我不确定我的代码中有什么地方做错了

这是我的PHP文件:

<?php 

    ... 
    echo json_encode($mostrar_player);
    ...

?>
试一试

如果需要数组,请尝试

<?php echo json_encode(array("data" => $mostra_player)); ?>

        JSONObject json = new JSONObject(responsedata);
        JSONArray jArray = json.getJSONArray("posts");
        for (int i = 0; i < jArray.length(); i++) {
            JSONObject e = jArray.getJSONObject(i);
            JSONObject jObject = new JSONObject(e.getString("data"));

            Log.d("yourdata", jObject.getString("yourdata"));
            Log.d("moredata", jObject.getString("moredata"));
        }

JSONObject json=新的JSONObject(responsedata);
JSONArray jArray=json.getJSONArray(“posts”);
for(int i=0;i
要实现这一点,您可以选择几个选项

我个人喜欢在Android中使用内置的JSON解析器

JSONObject jObject = new JSONObject(result);
您还可以使用Google的json解析库

另外,有关如何实际解析JSON和获取可在程序中使用的字符串的详细信息,请参见此链接。
我将尝试回答:-

  • 根据您的代码,您有这个字符串
    [“1”、“Admin”、“123”、“Adm”、“messages”、“0”]
    ,这显然是一个jsonarray,但您在android中解析为jsonobject

  • 正如@Boban所说的,你们不能在主线程上运行网络操作,所以要避免dat

  • 现在,按照我在1中提到的回答,您将如何做:-

    JSONArray jArray=new JSONArray(json_str)
    String id=jArray.getString(0);
    String admin=jArray.getString(1);
    .
    .
    .
    
    希望对你有帮助。。。如果我错了,请纠正我:)


    thx

    在程序到达行Log.i(“-RESPOSTA-”,Conn.response)后;它有bug,我得到了如下结果:java.lang.IllegalStateException:无法执行Activity的方法我正在尝试将这个[“1”、“Admin”、“123”、“Adm”、“messages”、“0”]放入我可以管理的数组中:您正在主线程中运行HTTP请求,Android不允许这样做。Bob,看起来他已经在使用JSON库了,否则他就不会有像getJsonArray()这样的方法了。它似乎是json.org解析器,这意味着我的答案是正确地将json数据从php解析为java!成功了!:你现在是我的php返回给我这个:{“0”:“1”,“1”:“Admin”,“2”:“1234”,“3”:“Adm”,“4”:“message”,“5”:“0”}带有0,1,2,3,4 e5,我相信这是每列的数字,所以我更改了这行:String yourdata=obj.getString(“1”);要获得第二列“ADMIN”^ ^,如果您想在JSON中使用数组,则应该考虑尝试JSONYNECODER(数组($MOSTRAIPER))。如果我的回答对你有帮助,别忘了投赞成票。谢谢如果我使用它,它会返回我{“data”:null}D:看看它是什么:$query=“SELECT*FROM chat”;$res=mysql\u query($query);$mostrar\u player=mysql\u fetch\u行($res);echo json_编码(数组(“数据”=>$mostra_播放器));修好了。它是mysql_fetch_数组,用来获得一个合适的数组,而不是一行。嘿,这也很有效,事实上看起来更容易。
    <?php echo json_encode(array("data" => $mostra_player)); ?>
    
            JSONObject json = new JSONObject(responsedata);
            JSONArray jArray = json.getJSONArray("posts");
            for (int i = 0; i < jArray.length(); i++) {
                JSONObject e = jArray.getJSONObject(i);
                JSONObject jObject = new JSONObject(e.getString("data"));
    
                Log.d("yourdata", jObject.getString("yourdata"));
                Log.d("moredata", jObject.getString("moredata"));
            }
    
    JSONObject jObject = new JSONObject(result);
    
    JSONArray jArray=new JSONArray(json_str)
    String id=jArray.getString(0);
    String admin=jArray.getString(1);
    .
    .
    .