2016-11-03 8 views
0

Я получаю эти данные из базы данных в контроллере. Я использовал adslashes при сохранении и stropslashes во время извлечения данных. Обратитесь к контроллеру и файлу php. Мне нужно, чтобы эта ошибка была исправлена. Надеюсь, кто-то может сказать, что я делаю неправильно.Ошибка анализа JSON: плохой экранированный символ

{"records":[{"id":"425","name":"a","content":"a\b<br>a<br>b"},{"id":"426","name":"1","content":"1\2"}]} 

Также просьба проверить .. ionicnotepad.com/www это то, что им практикует. Если вы сохраняете данные с перерывом в нем ... ангулярный, независимо от того, что показывает
в текстовом поле. Я все пробовал. $ sce, ng-bind-html, ng-sanitize, даже директива, если вы используете div и conteneditable.

//controller 
app.value('count', 0); 

app.controller('retrieveController', ['$sce','noteRetrieve','$state','alterNote','count','$ionicModal','$scope', function($sce, noteRetrieve, $state, alterNote, count, $ionicModal, $scope){ 
    var controller = this; 
    var temp = localStorage.getItem("ascOrDsc"); 

    if(temp == "asc" || temp == null){ 
    controller.orderValue = 'id'; 
    controller.buttonDown = false; 
    controller.buttonUp = true; 
    localStorage.setItem("ascOrDsc", "asc"); 
    } else { 
    controller.orderValue = '-id'; 
    controller.buttonUp = false; 
    controller.buttonDown = true; 
    } 


    noteRetrieve.all() 
    .success(function(data){ 

     var newData = data.replace(/&lt;br&gt;/g, '<br>'); 
     newData = newData.substring(1, newData.length - 1); 
     // newData = angular.fromJson(newData); 
     console.log(newData); 

     // controller.allSaved = newData.records; 
     // for(i = 0; i < newData.records.length; i++){ 
     // count++; 
     // } 
     // controller.noOFNotes = count; 
    }); 



    controller.deleteNote = function(noteId, noteName, noteContent){ 

    var currentNote = { 
     id: noteId, 
     name : noteName, 
     content : noteContent 
    }; 

    controller.itemId = noteId; 

    alterNote.delete(currentNote) 
     .success(function(){ 
      $state.go('notes.allnotes', {}, {reload: true}); 
     }); 
    }; 



    controller.changOrder = function(){ 
     var ascOrDscValue = localStorage.getItem("ascOrDsc"); 
     if(ascOrDscValue == 'asc'){ 
     controller.orderValue = '-id'; 
     controller.buttonUp = false; 
     controller.buttonDown = true; 
     localStorage.setItem("ascOrDsc", "desc"); 
     } else { 
     controller.orderValue = 'id'; 
     controller.buttonUp = true; 
     controller.buttonDown = false; 
     localStorage.setItem("ascOrDsc", "asc"); 
     } 
    }; 

    $ionicModal.fromTemplateUrl('templates/createNote.html', { 
     scope: $scope, 
     animation: 'slide-in-up' 

    }).then(function(modal){ 
     $scope.modal = modal; 
    }); 

    $scope.createModal = function() { 
     $scope.modal.show(); 
     localStorage.setItem('newNoteAvailable', 'no'); 
    }; 

    $scope.closeModal = function() { 
     if(localStorage.getItem('newNoteAvailable') == 'yes'){ 
     $state.go('notes.allnotes', {}, {reload: true}); 
     } else { 
     $state.go('notes.allnotes', {}, {reload: false}); 
     } 
     $scope.modal.hide(); 
     $ionicModal.fromTemplateUrl('templates/createNote.html', { 
     scope: $scope, 
     animation: 'slide-in-up' 

     }).then(function(modal){ 
     $scope.modal = modal; 
     }); 
    }; 

}]); 



//php 

$sql = "SELECT * 
     FROM noteFile"; 
$result = mysqli_query($conn, $sql); 

$outp = ""; 
while($rs = $result->fetch_array(MYSQLI_ASSOC)) { 
    if ($outp != "") { 
     $outp .= ","; 
    } 
    $outp .= '{"id":"' . $rs["id"] . '",'; 
    $outp .= '"name":"' . $rs["name"] . '",'; 
    $outp .= '"content":"'. $rs["data"] . '"}'; 
} 

$outp ='{"records":['.$outp.']}'; 


$outp = json_encode($outp); 

// var_dump($outp); 

$outp = stripslashes($outp); 


echo ($outp); 
+3

Возможный дубликат [Как решить JSON.parse: плохой характер управления в строковый литерал, в этом коде] (HTTP: // StackOverflow. com/questions/17487058/how-to-solve-json-parse-bad-control-character-in-string-literal-in-this-code) –

+0

http://stackoverflow.com/questions/17487058/how-to -solve-json-parse-bad-control-character-in-string-literal-in-this-code ИЛИ http://stackoverflow.com/questions/9684925/json-parsing-error-json-parse-bad-control -character-in-string-literal ИЛИ http://stackoverflow.com/questions/19573525/bad-control-character-error-in-json-parse –

+0

Я прочитал это, и у меня есть 2 вопроса. Но первый из них касается беглого персонажа. Я не понимаю, что мне нужно получить обратную косую черту в json, и когда это произойдет, это приведет к ошибке. Однако, если вы посмотрите внимательно. это то, что я тоже, у которого также есть обратная косая черта, и это не дает ошибки ... –

ответ

0

Часть "content":"1\2" не является действительным, он должен быть "content":"1\\2"

+0

im пытается и пытается nbut im не в состоянии заставить его работать .. может кто-нибудь сказать мне, что именно делать? –

+0

Перед тем, как сохранять JSON в базу данных, не используйте абразивы или любую другую функцию. Также не используйте стропы в процессе реставрации данных. Просто сохраните json как жало, и все должно быть хорошо. Кодирование JSON обрабатывает экранирование: 'echo json_encode (['content' => '1 \ 2']); // {"content": "1 \\ 2"} ' –

+0

{" id ":" 462 "," name ":" test "," content ":" a "}]} .. Я ввел a \ b и \ b сбежал –

 Смежные вопросы

  • Нет связанных вопросов^_^