关键词:
【中文标题】使用 JSON.stringify(queryObject) 时来自 mongoose js 的意外行为【英文标题】:Unexpected behavior from mongoose js when using JSON.stringify(queryObject) 【发布时间】:2021-08-28 21:30:08 【问题描述】:当我执行JSON.stringify(theKey : 'some\thing'
时,结果将是:
"theKey" : "some\\thing"
但是 queryObject
从 mongoose 查询返回,JSON.stringify(queryObject)
不会添加第二个反斜杠,所以当我在另一端解析它时它会给我错误。谢谢
【问题讨论】:
结果将是 `"theKey" : "some\\thing",但带有 ... 如果你把代码部分反引号` `它会被高亮显示
你看到额外的` when inspecting in a REPL or the console? It's not actually in the JSON. The JSON value is also
"some\thing"`
【参考方案1】:
我认为您将 JSON(可能来自控制台?)的内部表示误解为 JSON。
\
在"
、'
或反引号内定义的JS strings 中启动转义序列,这意味着它后面的字符可能具有特殊含义。让 JS 在字符串中实际输出\
。你需要两个斜线。
> console.log('\\')
\
JSON 编码需要输出带有\
的转义序列,而不是文字制表符。这意味着内部表示有两个\\
s。当您使用字符串时,它看起来没问题:
> console.log(JSON.stringify(theKey : 'some\thing'))
"theKey":"some\thing"
有特殊含义的escape sequences是:
\0
null\b
退格\f
换页\n
换行\t
制表符\r
回车\v
垂直制表符 \xNN
unicode\uNN
unicode\"
\'
这里有更多关于内部表示和实际 JSON 输出之间差异的示例
> a = JSON.stringify("a\az")
'"aaz"'
> console.log(a)
"aaz"
> b = JSON.stringify("a\bz")
'"a\\bz"'
> console.log(b)
"a\bz"
> s = JSON.stringify("a\\z")
'"a\\\\z"'
> console.log(s)
"a\\z"
【讨论】:
json.stringify()的深度使用
在使用JSON.stringify()对JSON数据进行序列化时1>如果里面的属性是function,则会被忽略constdata={a:‘a‘,fn:funciton(){returntrue}}JSON.stringify(data);//"{"a":"a"}"*******fn属性被忽略了**********2>如果里面的属性的值是undefined,也是会被忽略的constda 查看详情
json.stringify(),json.parse(),tojson()方法使用
JSON.stringify():将value(Object,Array,String,Number...)序列化为JSON字符串JSON.parse():将JSON数据解析为js原生值toJSON(),作为JSON.stringify中第二个参数(函数过滤器)补充,理解内部顺序很重要。假设把一个对象传入JSON.stringify()序列化对象的顺序如... 查看详情
使用 JSON.stringify 时不需要的数组索引
】使用JSON.stringify时不需要的数组索引【英文标题】:UnwantedarrayindexeswhenusingJSON.stringify【发布时间】:2012-02-1109:04:27【问题描述】:我使用JSON.stringify方法将数组传递给服务器。我有一个包含4个元素的数组:arr[10]=1;arr[20]=1;arr[30]... 查看详情
关于vue中json.parse(json.stringify(...))使用深拷贝问题
一般我们单独用JSON.parse()或JSON.stringify()今天在学vue看到JSON.parse(JSON.stringify(...))的用法,这里研究一下;首先分别说下他们的用法: JSON.parse() 是将字符串中的对象解析出来例: varstr="{‘name‘:‘huahua‘,‘age‘:‘22‘}... 查看详情
如何正确使用 JSON.stringify 和 json_decode()
】如何正确使用JSON.stringify和json_decode()【英文标题】:howtouseJSON.stringifyandjson_decode()properly【发布时间】:2013-04-0520:36:46【问题描述】:我试图通过以下方式将多维Javascript数组传递到我网站上的另一个页面:在数组上使用JSON.strin... 查看详情
json.parse()和json.stringify()使用
...在{}外,每个属性名都必须用双引号,否则会抛出异常。stringify()用于从一个对象解析出字符 查看详情
Node.js - 使用 json.stringify 时,正文搞砸了
】Node.js-使用json.stringify时,正文搞砸了【英文标题】:Node.js-Bodyismessedupwhenusingjson.stringify【发布时间】:2014-07-3116:19:49【问题描述】:客户:$.ajax(url:some_url,type:\'post\',dataType:\'json\',data:JSON.stringify(myArray:[])...$.ajax(url:some 查看详情
使用 JSON.stringify(queryObject) 时来自 mongoose js 的意外行为
】使用JSON.stringify(queryObject)时来自mongoosejs的意外行为【英文标题】:UnexpectedbehaviorfrommongoosejswhenusingJSON.stringify(queryObject)【发布时间】:2021-08-2821:30:08【问题描述】:当我执行JSON.stringify(theKey:\'some\\thing\'时,结果将是:"theKey":"s... 查看详情
qs.stringify、qs.parse、json.stringify的使用和区别
...安装,是一个npm仓库所管理的包。importqsfrom'qs'而qs.stringify()将对象序列化成URL的形式,以&进行拼接。如图qs.parse()将URL解析成对象的形式JSON是正常类型的JSON JSON.stringify同qs.stringify()对比,功能虽然是都是序列化,但是... 查看详情
在 Angular2 模板的表达式中使用 JSON.stringify
】在Angular2模板的表达式中使用JSON.stringify【英文标题】:UsingJSON.stringifyinanexpressioninAngular2template【发布时间】:2016-12-0200:36:45【问题描述】:我有一个小表达式来检查两个对象是否不同,以便显示这个元素(通过添加类名):&l... 查看详情
使用 JSON.stringify 将冒号转换为 unicode
】使用JSON.stringify将冒号转换为unicode【英文标题】:JSON.stringifyconvertscoloninsidestringtoaunicodecharacter[closed]【发布时间】:2021-09-1319:23:50【问题描述】:我在javascript中有一个对象,像这样time:"YYYY-MM-DDT00:00:00.000Z@YYYY-MM-DDT23:59:59.999Z"当... 查看详情
使用 JSON.stringify 将对象转换为字符串显示空对象 [重复]
】使用JSON.stringify将对象转换为字符串显示空对象[重复]【英文标题】:convertobjecttostringusingJSON.stringifyshowemptyobject[duplicate]【发布时间】:2018-12-0918:49:00【问题描述】:我正在尝试使用JSON.stringify将对象转换为字符串,但我得到了... 查看详情
格式化输出json
参考技术AJSON.stringify()是将JavaScript对象转换为JSON的规范方法。有许多JavaScript框架在内部都使用了JSON.stringify(),比如Express框架的res.json()和Axiosbody序列化。但是,默认情况下,JSON.stringify()输出的JSON格式,不带空格或颜色。在后... 查看详情
data-* 属性中的 encodeURIComponent() 与 JSON.stringify()
】data-*属性中的encodeURIComponent()与JSON.stringify()【英文标题】:encodeURIComponent()vsJSON.stringify()indata-*attribute【发布时间】:2014-10-1004:39:07【问题描述】:我想使用数组作为data-*属性,并且很多***答案建议我应该使用JSON.stringify();Howt... 查看详情
相当于 JSON.stringify 的 jquery [重复]
】相当于JSON.stringify的jquery[重复]【英文标题】:jqueryequivalentforJSON.stringify[duplicate]【发布时间】:2012-06-2213:17:18【问题描述】:可能重复:SerializingtoJSONinjQuery我在我的javascript代码中使用jquery作为库。但有时我必须JSON.stringify()。... 查看详情
JSON.stringify() 数组的怪异与 Prototype.js
】JSON.stringify()数组的怪异与Prototype.js【英文标题】:JSON.stringify()arraybizarrenesswithPrototype.js【发布时间】:2012-11-2502:06:51【问题描述】:我正在尝试找出我的json序列化出了什么问题,将我的应用程序的当前版本与旧版本一起使用... 查看详情
JSON.stringify 和 JSON.parse 之间的区别
】JSON.stringify和JSON.parse之间的区别【英文标题】:DifferencebetweenJSON.stringifyandJSON.parse【发布时间】:2013-07-2101:42:07【问题描述】:我一直对何时使用这两种解析方法感到困惑。在我回显我的json_encoded数据并通过ajax将其取回后,我... 查看详情
为啥 TypeError 上的 JSON.stringify 返回一个空对象 [重复]
】为啥TypeError上的JSON.stringify返回一个空对象[重复]【英文标题】:WhydoesJSON.stringifyonTypeErrorreturnanemptyobject[duplicate]为什么TypeError上的JSON.stringify返回一个空对象[重复]【发布时间】:2016-03-2118:22:09【问题描述】:我正在使用节点4.... 查看详情