Как правильно разобрать Json с php json_encode - PullRequest
0 голосов
/ 30 апреля 2020

Я хочу проанализировать json данные, созданные PHP json_encode в моем приложении переднего плана, я не могу сделать это:

var data= '<?php echo $jsonarr; ?>';

Поскольку это приложение Cordova. Вот мой php код:

 <?php
 $arr_login= array("lname"=>"$rowlname","email"=>"$rowemail","fname"=>"$rowfname","mobile"=>"$rowmobile");
  echo json_encode($arr_login);
  ?>

Мой ajax код:

  $.ajax({
  type:"POST",
  url: url,
  data:data,
  success: function(data){
  var res = $.trim(data);
  if (res == "Password is inccorrect" || res== "Email is inccorrect") {
   $("#errmsg").html(data);
  }
    else{
    var response= JSON.parse(data);
    alert(response);
    //window.open("dashboard.html?sess=logined&","_self");

    }
}

    });

Теперь, если я отправляю данные, это дает мне действительный формат json, отправленный PHP, но мне нужно преобразовать его в javascript объект, чтобы я мог использовать его в DOM, но JSON .parse выдает эту ошибку в консоли, пожалуйста, помогите, синтаксис выглядит нормально:

 VM236:14 Uncaught SyntaxError: Unexpected token / in JSON at position 147

Ответы [ 2 ]

1 голос
/ 30 апреля 2020

Почему вы оповещаете всю переменную json, которая определенно является объектом? Я смоделировал ваш процесс, так как @Anik Anwar упомянул JSON.stringify решение

    <?php

        $rowlname = "row";
        $rowemail = "email";
        $rowfname = "rowfname";
        $rowmobile = "rowmobile";

        $arr_login= array("lname"=>"$rowlname","email"=>"$rowemail","fname"=>"$rowfname","mobile"=>"$rowmobile");
        $jsonarr = json_encode($arr_login);

    ?>

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>


    <script src="https://code.jquery.com/jquery-3.5.0.js"></script>

    <script>
        var data = '<?php echo $jsonarr ?>';
    </script>

    <script>
        $.ajax({
            type: "POST",
            url: '/',
            data: data,
            dataType: 'json',
            contentType: 'application/json',
            success: function (data) {
                var res = $.trim(data);
                var response = JSON.parse(JSON.stringify(data));
                window.alert(response.lname);
            }

        });
    </script>

</body>

</html>
1 голос
/ 30 апреля 2020
var response = JSON.parse(JSON.stringify(data));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...