SyntaxError: неожиданный токен v в JSON в позиции 2 - PullRequest
0 голосов
/ 18 января 2020

На моем локальном компьютере запущен сервер node.js с express. js, и мне нужно декодировать запрос, сделанный клиентом, который содержит строку json. Я запускаю код ниже и получаю следующую ошибку.

SyntaxError: Unexpected token v in JSON at position 2
    at JSON.parse (<anonymous>)
    at C:\myLocation\source\repos\server\server\server.js:144:19
    at Layer.handle [as handle_request] (C:\myLocation\source\repos\server\server\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\myLocation\source\repos\server\server\node_modules\express\lib\router\index.js:317:13)

Мой запрос

http://localhost: 1337 /% 7B% 22Code% 22:% 22VNdVwY9iWhFZ114CjcDZbY% 22,% 22Chat% 22:% 22Test. txt% 22% 7D

Ожидаемое json равно

{"Code": "VNdVwY9iWhFZ114CjcDZbY", "Chat": "Test.txt" }

Я получаю json, но все равно выдает ту же ошибку.

Мой код:

app.use(function (req, res) {
    //console.log(req.url)
    var myStr = req.url.replace('/', '')

    if (myStr != false) {
        let decodeStr = decodeURIComponent(myStr)

        var test = JSON.parse(decodeStr)
        var json = JSON.stringify(test)

        if (json.includes(createkey)) {
            console.log("Create: " + json)
            createFile(req, res, test)
        } else if (json.includes(modKey)) {
            console.log("Modify: " + json)
            modifyFile(req, res, test)
        } else if (json.includes(readFileKey)) {
            console.log("Read: " + json)
            readFile(req, res, test)
        }
    } else {
        res.sendStatus(404)
        console.log("home")
    }
})

Почему я получаю ошибку ?

Редактировать 1

Я добавил console.log(decodeStr), но все равно получаю ошибку. Возвращает {"Code":"VNdVwY9iWhFZ114CjcDZbY","Chat":"Test.txt"}

1 Ответ

1 голос
/ 19 января 2020

{"Code": "'GAHGAaphgAP: gjpaGHAHAG {AaGRAP; GHPG; RA", "Chat": "Test.txt"} не является допустимым json, поэтому вы сталкиваетесь с этой ошибкой, наоборот Вы можете проанализировать

JSON.parse('{"Code":"\'GAHGAaphgAP:gjpaGHAHAG{AaGRAP;GHPG;RA","Chat":"Test.txt"}')

Попробуйте

 var uri = "http://localhost:1337/%7B%22Code%22:%22%5C'GAHGAaphgAP:gjpaGHAHAG%7BAaGRAP;GHPG;RA%22,%22Chat%22:%22Test.txt%22%7D";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...