将字符串解析为对象bug

文章讲述了在后端开发中,如何处理从流式返回的包含特殊字符的字符串,如单引号转为双引号,并使用JSON.parse进行解析的过程。作者通过示例展示了如何使用`encodeURIComponent`函数进行转换和处理异常情况。
摘要由CSDN通过智能技术生成

后端流式返回字符串
形如:
'{data: {"id":"as-n5epmnesgd","object":"chat.completion","created":1712714915,"sentence_id":1,"is_end":false,"is_truncated":false,"result":"文本处理助手,我可以回答你的问题并提供相关的信息和建议。","need_clear_history":false,"finish_reason":"normal","usage":{"prompt_tokens":242,"completion_tokens":0,"total_tokens":242}}}'
需要做一些处理:
比如把内部的单引号变为双引号,
比如把未加括号的键加上双引号

const res = await fetch()
const reader = res.body.getReader()
const decoder = new TextDecoder();
    while (true) {
      const { done, value } = await reader.read();
      if (done) {
        console.log("exit");
        break;
      }
      const text = decoder.decode(value);
      // 打印第一块的文本内容
      console.log(text, done);
      try {
        console.log(JSON.parse(text.replace(/(\b\w+\b)(?=:)/g, '"$1"')));
      } catch (error) {
        console.log(error);
      }
    }

``

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SuperHaker~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值