как прочитать объект json из php

Я новичок в json. Я пытаюсь прочитать значения из базы данных MySQL и закодировать результат в данные json. Для этого я написал следующее кодирование

<?php
$conn=mysql_connect('localhost','root','');
$mydb=mysql_select_db("json",$conn) or die('failed');
$result=mysql_query("select * from register",$conn);
$rowsarray[]=array();
$rowsarra[]=null;
while($rows=mysql_fetch_assoc($result)){
$rowsarray[]=$rows;}
echo  json_encode($rowsarray); ?>

я получаю вывод как

[[],{"name":"$name","password":"$password","email":"$email","address":"$address"},{"name": "rushi","пароль":"dfsdf","электронная почта":"dsfgs","адрес":"ssfsfsdf"},{"имя":"hmd","пароль":"123","электронная почта": "rdf","адрес":"sfdssf"},{"имя":"sdfs","пароль":"sdfsf","электронная почта":"sdfsdf","адрес":"sdf"},{"имя ":"rushi","пароль":"sadsa","электронная почта":"xdfsaf","адрес":"sdfsdf"}]

when i view this in online jsonviewer i get the output as +JSON

  • +0
  • +1
  • +2
  • +3
  • +4
  • +5
  • как я могу прочитать подробности внутри объекта json для «0», «1»,... в моем приложении для Android

    JsonArray jsonarray=new JsonArray(response.tostring);
    JsonObject job=jsonarray.getstring("0");
    

    это способ получить jsonobject? (или же)

    как я могу дать электронную почту сотрудника вместо 0,1,2,... пожалуйста, помогите мне. если я где-то ошибаюсь, поправьте меня. заранее спасибо


    person user1932583    schedule 28.08.2015    source источник
    comment
    Избегайте устаревших mysql_, пользователей mysqli или PDO.   -  person al'ein    schedule 28.08.2015
    comment
    Можете ли вы получить этот вывод json на вашем устройстве Android ??   -  person Subin Thomas    schedule 28.08.2015


    Ответы (2)


    Используйте jsonlint для четкого понимания формата. Скопируйте и вставьте свой результат в jsonlint, а затем просто проверьте его следующим образом.

    [
    [],
    {
        "name": "$name",
        "password": "$password",
        "email": "$email",
        "address": "$address"
    },
    {
        "name": "rushi",
        "password": "dfsdf",
        "email": "dsfgs",
        "address": "ssfsfsdf"
    },
    {
        "name": "hmd",
        "password": "123",
        "email": "rdf",
        "address": "sfdssf"
    },
    {
        "name": "sdfs",
        "password": "sdfsf",
        "email": "sdfsdf",
        "address": "sdf"
    },
    {
        "name": "rushi",
        "password": "sadsa",
        "email": "xdfsaf",
        "address": "sdfsdf"
    }
    ]
    

    Из этого результата данных вы просто пишете приведенный ниже код.

    JSONArray resultArray = new JSONArray(your result);
    int length = resultArray.length();
    for (int i = 0; i < length; i++) {
        JSONObject jsonItems = jsonFaovourites.getJSONObject(i);
        String name = jsonItems.getString("name");
        String email= jsonItems.getString("email");
        //password etc..
    }
    
    person Sridhar    schedule 28.08.2015

    Вы должны попробовать это,

    <?php
    header("Access-Control-Allow-Origin: *");
    header("Content-Type: application/json; charset=UTF-8");
    
    $conn = new mysqli("localhost", "root", "myPassword", "json");
    
    
    $result = $conn->query("SELECT * FROM register");
    
    $outp = "";
    while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
        if ($outp != "") {$outp .= ",";}
        $outp .= '{"field1":"'  . $rs["field1"] . '",';
        $outp .= '"field2":"'   . $rs["field2"]        . '",';
        $outp .= '"fieldx":"'. $rs["fieldx"]     . '"}'; 
    
        //fieldx where x is the next column/filed if any and filed the name of the column the exact way it is on the database  
    }
    $outp ='{"records":['.$outp.']}';
    $conn->close();
    
    echo($outp);
    
    //Note this returns json to the browser so no need to json_encode
    ?>
    

    Теперь вы можете прочитать это как обычный объект JSON, кодировать не нужно. Но читать строку JSON, поступающую из вашего приложения для Android, было бы другим подходом.

    Вы будете делать что-то вроде

    $data //data from android application 
    
    $data = json_decode($data);
    
    $data->field //to access the field/property in this object
    

    Надеюсь, это решит вашу проблему. Дайте мне знать, если это не так

    person theterminalguy    schedule 28.08.2015