Request: Ошибка JSON.parse ΠΈΠ·-Π·Π° символа спСцификации

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 5 янв. 2018  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: request/request

РСзюмС

БпСцификация Π½Π΅ удаляСтся ΠΈΠ· Ρ‚Π΅Π»Π° ΠΎΡ‚Π²Π΅Ρ‚Π°, ΠΊΠΎΠ³Π΄Π° Ρ‚Π΅Π»ΠΎ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π±ΡƒΡ„Π΅Ρ€ΠΎΠΌ

Π‘Π°ΠΌΡ‹ΠΉ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для воспроизвСдСния

    request({
        url: url,
        json: true,
        strictSSL: false,
    }, (error, response, data) => {
        if (error) {
            throw error;
        }

        if (response.statusCode === 200) {
            // data is string instead of json deserialized object 
        }
    })

ОТидаСмоС повСдСниС

BOM char ΡƒΠ΄Π°Π»Π΅Π½, Π° ΠΎΡ‚Π²Π΅Ρ‚ json дСсСриализован

Π’Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅

JSON.parse Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΈ возвращаСтся строка

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

    if (bufferLength) {
      debug('has body', self.uri.href, bufferLength)
      response.body = Buffer.concat(buffers, bufferLength)
      if (self.encoding !== null) {
        response.body = response.body.toString(self.encoding)
      }
      // `buffer` is defined in the parent scope and used in a closure it exists for the life of the Request.
      // This can lead to leaky behavior if the user retains a reference to the request object.
      buffers = []
      bufferLength = 0
    } else if (strings.length) {
      // The UTF8 BOM [0xEF,0xBB,0xBF] is converted to [0xFE,0xFF] in the JS UTC16/UCS2 representation.
      // Strip this value out when the encoding is set to 'utf8', as upstream consumers won't expect it and it breaks JSON.parse().
      if (self.encoding === 'utf8' && strings[0].length > 0 && strings[0][0] === '\uFEFF') {
        strings[0] = strings[0].substring(1)
      }
      response.body = strings.join('')
    }

Как ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, спСцификация char удаляСтся, ΠΊΠΎΠ³Π΄Π° строки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ вмСсто Π±ΡƒΡ„Π΅Ρ€Π°.
Π˜Π·Π²Π»Π΅ΠΊΠΈΡ‚Π΅ ΠΊΠΎΠ΄ Π²Π½Π΅ else if (strings.length), Ρ‡Ρ‚ΠΎΠ±Ρ‹ всСгда ΠΎΡ‡ΠΈΡ‰Π°Ρ‚ΡŒ Ρ‚Π΅Π»ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π°.

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚

Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π²Π΅Ρ‚Π° json ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ чванства ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π½Π° основС swashbuckle

Π’Π°ΡˆΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅

| ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС | вСрсия
| ---------------- | -------
| запрос | 2,83,0
| ΡƒΠ·Π΅Π» | 9.3.0
| npm | 5.5.1
| ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма | Windows 10

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Если ΠΌΡ‹ установим ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ: 'utf8' Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… запроса, ΠΎΡ‚Π²Π΅Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½.

ВсС 3 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Если ΠΌΡ‹ установим ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ: 'utf8' Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… запроса, ΠΎΡ‚Π²Π΅Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½.

Π­Ρ‚Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±Ρ‹Π»Π° автоматичСски ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π° ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ°Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² послСднСС врСмя Π½Π΅ Π±Ρ‹Π»ΠΎ активности. Он Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚, Ссли большС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ активности. Бпасибо Π·Π° ваш Π²ΠΊΠ»Π°Π΄.

Π― Ρ‚ΠΎΠΆΠ΅ Π²ΠΈΠΆΡƒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ - спасибо, Ρ‡Ρ‚ΠΎ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ - Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ, Ссли Π±Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΡΠΏΡ€Π°Π²ΠΈΠ»Π°ΡΡŒ с этим.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ