Как преобразовать строку в JSON в узле - PullRequest
1 голос
/ 09 марта 2020

Как преобразовать следующую строку параметров в JSON, используя узел.

"token=1234&team_id=TADAS&team_domain=testddomain&channel_id=AVC"

Ожидаемый результат: { "token":1234, "team_id":"TADAS","team_domain":"testddomain","channel_id":"AVC"}

Tried JSON .parse, не работает - Uncaught SyntaxError: Unexpected token o in JSON at position 1

Ответы [ 5 ]

6 голосов
/ 09 марта 2020

Поскольку здесь нет ответов, использующих собственные решения, ориентированные на URL, вот моя версия.

Вы можете использовать Модуль URL узла (, который также работает в браузере ) вроде так:

const queryString = "token=1234&team_id=TADAS&team_domain=testddomain&channel_id=AVC";
const params = new URLSearchParams(queryString);

const paramObject = Object.fromEntries(params.entries());
    
console.log(paramObject);

Кроме того, вместо построения объекта вы можете просто использовать функцию get, например:

const token = params.get("token") // Returns "1234"
2 голосов
/ 09 марта 2020

Я думаю, что query-string зависимость - это то, что вам нужно :) https://www.npmjs.com/package/query-string

Функция parse принимает строку запроса в качестве параметра и возвращает чистую JS объект.

2 голосов
/ 09 марта 2020

Вы можете использовать пакет строки запроса .

Использование:

const qs = require('query-string');

const query = "token=1234&team_id=TADAS&team_domain=testddomain&channel_id=AVC";

const parsedObject = qs.parse(query);
console.log(parsedObject);
1 голос
/ 09 марта 2020

Вы можете попробовать использовать split и reduce.

const query = "token=1234&team_id=TADAS&team_domain=testddomain&channel_id=AVC"

const json = query.split('&').reduce((acc, i) => {
  const [key, value] = i.split('=')
  acc[key] = value

  return acc
}, {})

console.log(json)
1 голос
/ 09 марта 2020

Вы можете использовать библиотеку запросов строки node js

var qs = require("querystring")
var json = qs.parse("token=1234&team_id=TADAS&team_domain=testddomain&channel_id=AVC")

, тогда результат будет таким:

{ "token":1234, "team_id":"TADAS","team_domain":"testddomain","channel_id":"AVC"}

Вы можете сослаться по этой ссылке https://nodejs.org/api/querystring.html#querystring_querystring_parse_str_sep_eq_options

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...