Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >位置1处JSON中的意外令牌u

位置1处JSON中的意外令牌u
EN

Stack Overflow用户
提问于 2019-03-19 18:10:32
回答 1查看 2K关注 0票数 5

我知道这是一个常见的问题,但在获取数据时,我一直会遇到这样的错误:

SyntaxError: JSON.parse ()位置1处JSON中的意外标记u

这是在我测试我的完整代码时发生的,所以我用

代码语言:javascript
运行
AI代码解释
复制
res.send(JSON.stringify({"data": "test"}));

在我的客户端,我使用以下代码:

代码语言:javascript
运行
AI代码解释
复制
fetch(url)                                   // fetch works
    .then(checkStatus)                       // checks for errors, if none send response text
    .then(function (responseText) {
        let data = JSON.parse(responseText); // where I'm getting the error

在测试这些值时,服务器端的所有内容都会打印正确的值。但是,当我使用console.log在客户端打印responseText时,我得到如下信息:

F text() {本机代码}

为什么要调用此错误?通过查看堆栈溢出,我了解到当我试图解析未定义的字符串时会发生此错误。在要检查的解析是字符串未定义之前,我放置了一个if语句:

代码语言:javascript
运行
AI代码解释
复制
if (responseText === undefined) {
    console.log("responseText is undefined");
}

但是它没有输出,所以字符串真的没有定义吗?另外,节点是最新的。谢谢你的helping.If这是在另一个问题中回答,请告诉我。我还没有找到解决这个问题的办法。

编辑:

代码语言:javascript
运行
AI代码解释
复制
function checkStatus(response) {
    if (response.status >= 200 && response.status < 300) {
        return response.text;
    } else if (response.status === 404) {
        clear();
        return Promise.reject(new Error("Sorry, we couldn't find that page"));
    } else {
        console.log(response.text());
        return Promise.reject(new Error(response.status + ": " + response.statusText));
    }
}

编辑: response.text应该是response.text()。这让我犯了错误。

EN

回答 1

Stack Overflow用户

发布于 2019-03-19 18:19:52

更新以匹配新的问句代码

承诺链使用最后一个返回值解析每个新承诺。

您应该注意到,fetch() API返回一个带有Response对象的Promise解析。这没有text 属性,因此checkStatus使用undefined进行解析(因此在错误消息中出现了"u“)。

我建议您使用Body.json()方法解析JSON响应,即将checkStatus更改为使用

代码语言:javascript
运行
AI代码解释
复制
if (res.ok) { // same as checking status between [200, 300)
  return res.json()
}
if (res.status === 404) {
  clear()
  return Promise.reject(new Error("Sorry, we couldn't find that page"))
}
// text(), like json() returns a promise
return res.text().then(responseText => {
  console.error(responseText)
  return Promise.reject(new Error(`${res.status}: ${res.statusText}`))
})

而对于fetch()..。

代码语言:javascript
运行
AI代码解释
复制
fetch(url)
  .then(checkStatus)
  .then(data => {
    // data is already parsed into an object
  })

在服务器端,您可能希望使用res.json()而不是手动调整数据。

代码语言:javascript
运行
AI代码解释
复制
res.json({ data: 'test' })
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55252556

复制
相关文章
PHP实现单例连接MySQL
单例模式的定义:保证一个类只有一个实例,并提供一个访问它的全局访问点。这就意味着这个类只实例化一次,并做好防止外部再次实例化的措施,比如克隆私有化,构造函数私有化,还要把实例化好的资源保存起来,供外部使用。
素浅
2020/12/18
7.7K0
单例模式【单例设计模式】
指一个类只有一个实例,且该类能自行创建这个实例的一种模式。例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误。
高大北
2022/06/14
1.8K0
单例模式【单例设计模式】
单例
new实现单例 new至少要有一个参数cls,代表要实例化的类,new方法负责创建一个实例对象,在对象被创建的时候调用该方法它是一个类方法,new方法负责创建一个实例对象,在对象被创建的时候调用该方法它是一个类方法。new方法在返回一个实例之后,会自动的调用init方法,对实例进行初始化。如果new方法不返回值,或者返回的不是实例,那么它就不会自动的去调用init方法。此参数在实例化时由Python解释器自动提供 class Singleton(object): def __new__(cls, *
用户1733462
2018/06/01
5260
不是单例的单例——巧用ClassLoader
单例模式是最常用的设计模式之一。其目的是保证一个类在进程中仅有一个实例,并提供一个它的全局访问方式。那什么场景下一个进程里需要单例类的两个对象呢?很明显这破坏了单例模式的设计初衷。
PPPHUANG
2023/05/15
3770
不是单例的单例——巧用ClassLoader
java单例模式_Java单例模式
单例(Singleton)模式是Java中最简单的设计模式之一。这种类型的设计模式属于创建模式,因为此模式提供了创建对象的最佳方法之一。
全栈程序员站长
2022/09/08
2.1K0
java单例模式_Java单例模式
单例模式《单例模式概念、什么时候能用到单例模式、单例模式的好处》
__new__方法是用来创建实例对象的,通过类去创建方法的时候,实际上类自动调用的__new__方法。
清菡
2021/05/11
1.9K0
单例模式《单例模式概念、什么时候能用到单例模式、单例模式的好处》
单例模式 指令重排_php单例模式
我不由得重新审视着这段代码,难道看似稳的一逼的代码如此不堪一击? 于是,我大致了解了下指令重排: 指令重排序是JVM为了优化指令,提高程序运行效率,在不影响单线程程序执行结果的前提下,尽可能地提高并行度。 也就是说,JVM为了执行效率会将指令进行重新排序,但是这种重新排序不会对单线程程序产生影响。
全栈程序员站长
2022/11/02
1.9K0
C++ 单例模式_c 单例模式
本文对C++ 单例的常见写法进行了一个总结, 包括1>懒汉式版本、2>线程安全版本智能指针加锁、3>线程安全版本Magic Static; 按照从简单到复杂,最终回归简单的的方式循序渐进地介绍,并且对各种实现方法的局限进行了简单的阐述,大量用到了C++ 11的特性如智能指针,magic static,线程锁;从头到尾理解下来,对于学习和巩固C++语言特性还是很有帮助的。
全栈程序员站长
2022/11/17
9570
C++ 单例模式_c 单例模式
单例模式
单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。 这样的模式有几个好处: 1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。 2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。 3、有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。(比如一个军队出现了多个司令员同时指挥,肯定会乱成一团),所以只有使用单例模式,才能保证核心交易服务器独立控制整个流程。 UML
xiangzhihong
2018/02/05
1.2K0
单例模式
单例模式Singleton Pattern又名单件模式或单态模式,属于创建型模式,其涉及到一个单一的类,该类负责创建所需的对象,同时确保只有单个对象被创建,这个类提供了一种访问其唯一的对象的方式,保证访问的对象是只实例化一次的对象类。
WindRunnerMax
2022/05/06
9330
单例模式
 使用闭包和匿名函数 实现一个单例模式,只有在需要的时候才创建对象的实例 var getSingle = function (fn) { var result return function () { return result || (result = fn.apply(this, arguments)) } } var getRandNum = function () { return Math.random() } var randomFun = getSingle(get
拿我格子衫来
2022/05/07
5330
[设计模式]单例模式
静默虚空
2018/01/05
1.6K0
[设计模式]单例模式
单例模式singleton_单例模式例子
在软件系统中,经常有一些特殊的类,必须保证它们在系统中只存在一个实例,才能保证他们的逻辑正确性、以及良好的效率
全栈程序员站长
2022/09/22
1.2K0
单例模式singleton_单例模式例子
单例模式
单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点。通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个好的方法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。------《设计模式:可复用面向对象软件的基础》
mingmingcome
2021/11/29
3140
单例模式
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一,属于创建型模式。 单例模式定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
卡尔曼和玻尔兹曼谁曼
2019/01/22
5650
单例对象
在开发中经常需要使用单例对象。今天主要说的是单例宏 首先先简单介绍一下 1.单例设计模式(Singleton) 1> 什么: 它可以保证某个类创建出来的对象永远只有1个 2> 作用(为什么要用) * 节省内存开销 * 如果有一些数据, 整个程序中都用得上, 只需要使用同一份资源(保证大家访问的数据是相同的,一致的) * 一般来说, 工具类设计为单例模式比较合适 3> 怎么实现 * MRC(非ARC) * ARC 代码采用的是mrc的环境 单独创建一个.h文件 例如SingleTon.h 1 //帮助实现单
用户1219438
2018/02/01
6060
单例模式
原文地址为https://www.cnblogs.com/haixiang/p/12063951.html,转载请注明出处!
海向
2019/12/20
6190
python 单例
目标 单例设计模式 __new__ 方法 Python 中的单例 01. 单例设计模式 设计模式 设计模式 是 前人工作的总结和提炼,通常,被人们广泛流传的设计模式都是针对 某一特定问题 的成熟的解决方案 使用 设计模式 是为了可重用代码、让代码更容易被他人理解、保证代码可靠性 单例设计模式 目的 —— 让 类 创建的对象,在系统中 只有 唯一的一个实例 每一次执行 类名() 返回的对象,内存地址是相同的 单例设计模式的应用场景 音乐播放 对象 回收站 对象 打印机 对象 数据库访问
Devops海洋的渔夫
2019/06/02
7970
单例模式
private static SingletonExample1 instance= null;
路行的亚洲
2020/07/16
4360
单例模式
如果想使得某个类从始至终最多只有一个实例,使用new方法会很简单。Python中类是通过new来创建实例的:
用户2936342
2018/08/27
4050

相似问题

火花JDBC连接到谷歌云扳手故障

215

单例连接+单例准备语句

11

从DBVisualizer连接到谷歌云扳手

31

谷歌扳手: JDBC连接字符串?

29

谷歌云扳手与Liquibase的连接

17
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档