Andrey Oktyabrskiy
February 14, 2019 04:08PM
On 14.02.2019 18:38, Dmitry Volyntsev wrote:
> On 14.02.2019 17:57, Andrey Oktyabrskiy wrote:
>> Возможно ли в NJS получить строку
>> {"text":"\u0431\u0435\u043b\u0438\u0431\u0435\u0440\u0434\u0430"}
>>
>> из такого JSON'a
>> {"text":"белиберда"}
>>
>> JSON.parse прекрасно распознаёт такой JSON, а вот обратное
>> преобразование как сделать, не соображу никак.
>>
>>  >> s =
>> JSON.stringify(JSON.parse('{"text":"\u0431\u0435\u043b\u0438\u0431\u0435\u0440\u0434\u0430"}'))
>>
>> '{"text":"белиберда"}'
>
> А какую задачу вы пытаетесь решить?
Пытаюсь использовать чужой API, который принимает только такие строки.
Требование выглядит странным, но повлиять на это поведение я никак не могу.

> Ничего готово не припоминаю, но можно, в качестве развлечения, написать
> такую функцию
Я думал, может со stringify какой-то фокус можно сделать...

> : function uniсode_escape(s) {
> :   var codes = [];
> :   for (var i = 0; i < s.length; i++) {
> :       codes.push(s.codePointAt(i).toString(16).padStart(4, '0'));
> :   };
> :   return '\\u'+codes.join('\\u');
> : }
> :
> : >> unicode_escape('белиберда')
> : '\\u0431\\u0435\\u043b\\u0438\\u0431\\u0435\\u0440\\u0434\\u0430'
> : JSON.parse("\"" + unicode_escape('белиберда') + "\"")
> : 'белиберда'
Спасибо!

Для такой экзотической задачи очень даже адекватное решение.
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

njs + json + \uXXXX

Andrey Oktyabrskiy February 14, 2019 09:58AM

Re: njs + json + \uXXXX

Dmitry Volyntsev February 14, 2019 10:40AM

Re: njs + json + \uXXXX

Andrey Oktyabrskiy February 14, 2019 04:08PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 274
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready