Как добавить массив JSON для объекта JSON в PHP

1

Я пытаюсь добавить массив JSON к объекту JSON. Мой код похож на этот

{
  "status": "True",
  "users": {
    "id": "16",
    "name": "user",
    "email": "[email protected]",
    "friends": [
      {
        "id": "11",
        "name": "frnd1",
        "email": "[email protected]"
      },
      {
        "id": "12",
        "name": "frnd2",
        "email": "[email protected]"
      }
    ]
  }
}

Я получаю исключение JSON при выполнении следующего кода,

 // check for user
    $user = $db->getUserByEmailAndPassword($username, $password);
    if ($user != false) {
        // user found
            $response["status"] = "True";
            $userID = $user["id"];
            $response["users"]["id"] = $user["id"];
            $response["users"]["name"] = $user["name"];
            $response["users"]["email"] = $user["email"];
            $result = mysqli_query($con1,"SELECT * 
                                         FROM friends 
                                         where userID = '$userID'");
            $response["users"]["friend"]=array();
            while($row = mysqli_fetch_array($result))
            {
               array_push($response["users"]["friend"], $row);
            }
     }
     echo json_encode($response);

Я сделал соединение $ con1 в этом файле. Может ли кто-нибудь указать, что я делаю неправильно здесь?

  • 0
    Указанный вами JSON недействителен. Проверьте это в этом валидаторе
  • 0
    спасибо, я сделал это
Теги:

2 ответа

0

Почему у вас есть дополнительные , после email.

Последним элементам не нужна запятая.

замещать

{
    "status": "True",
    "users": {
        "id": "16",
        "name": "user",
        "email": "[email protected]",
        "friends": [
            {
                "id": "11",
                "name": "frnd1",
                "email": "[email protected]",//comma not needed here
            },
            {
                "id": "12",
                "name": "frnd2",
                "email": "[email protected]",//here too
            }
        ]
    }
}

с

{
    "status": "True",
    "users": {
        "id": "16",
        "name": "user",
        "email": "[email protected]",
        "friends": [
            {
                "id": "11",
                "name": "frnd1",
                "email": "[email protected]"
            },
            {
                "id": "12",
                "name": "frnd2",
                "email": "[email protected]"
            }
        ]
    }
}
0

Попробуй это

// check for user
$user = $db->getUserByEmailAndPassword($username, $password);
if ($user != false) {
    // user found
    $response["status"] = "True";
    $userID = $user["id"];
    $response["users"]["id"] = $user["id"];
    $response["users"]["name"] = $user["name"];
    $response["users"]["email"] = $user["email"];
    $result = mysqli_query($con1,"SELECT * 
                                  FROM friends 
                                  WHERE userID = '$userID'");
    while($row = mysqli_fetch_array($result)) {
        $response["users"]["friends"][] = $row;
    }
 }
 echo json_encode($response);
  • 0
    он не работает до сих пор сталкивается с той же проблемой org.json.JSONException
  • 0
    эй, спасибо, это работает, теперь мой плохой, я сделал ошибку в написании имени таблицы от "друзей" к "другу"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню