双引号和JSON.stringify

时间:2019-06-26 17:18:55

标签: javascript json

我有一个映射索引的对象和一个键-值对对象:

var obj = {0: {key: "{{0:$.data[?(@.first_name=="Janet")].last_name}}", value: "Janet"}}

在KV对中,其中可能包含JSONPath语言。显然,JSONPath可以包含双引号,即first_name=="Janet"

我需要JSON.stringify() obj。但是,这样做会导致结果字符串中包含\个转义字符,这会进一步破坏JSONPath解析器。

stringify()的结果:

"{"0":{"key":"{{0:$.data[?(@.first_name==\"Janet\")].last_name}}","value":"Janet"}}"

使用单引号first_name=='Janet'可以解决此问题,但是出于可用性的考虑,我不希望我的用户引用JSONPath文档,请参阅""是有效的,只是为了解决问题并告诉他们在我的应用程序中无效。

假设我必须对obj进行字符串化处理,并且可能存在合法的反斜杠字符(即first_name=="foo\baz"),那么哪种方法都很好?

a。在字符串化之前对我的obj进行消毒,以将双引号替换为单引号 b。在Stringify之后修正结果以摆脱\ C。用我没有想到的完全不同的方式解决这个问题

0 个答案:

没有答案