Javascript 通过Node Express以字符串而不是JSON的形式发送对象
好的,我希望响应是一个普通字符串,而不是JSON 这个物体Javascript 通过Node Express以字符串而不是JSON的形式发送对象,javascript,html,node.js,json,object,Javascript,Html,Node.js,Json,Object,好的,我希望响应是一个普通字符串,而不是JSON 这个物体 让obj={ 福:“酒吧”, 巴兹:1 } 应作为 "{foo: 'bar', baz: 1}" 而不是 {"foo": "bar", "baz": 1} 为什么??我需要在中使用字符串作为链接 JSON中的双引号中断了图像链接 或者,也许可以建议一个更好的方法。您可以使用JSON.stringify来实现这一点 let obj = { foo: 'bar', baz: 1 } console.log(JSON.st
让obj={
福:“酒吧”,
巴兹:1
}
应作为
"{foo: 'bar', baz: 1}"
而不是
{"foo": "bar", "baz": 1}
为什么??我需要在中使用字符串作为链接
JSON中的双引号中断了图像链接
或者,也许可以建议一个更好的方法。您可以使用
JSON.stringify
来实现这一点
let obj = {
foo: 'bar',
baz: 1
}
console.log(JSON.stringify(obj));
这将把对象转换成字符串
JSON中的双引号中断了图像链接
你有
问题是在由“
字符分隔的属性值中使用”
字符将破坏属性值
虽然避免在数据中使用“
字符是一个解决方案,但它不是一个好的解决方案(主要是因为在不破坏其他内容的情况下避免字符是很困难的)。更好的解决方案是正确地转义它们
const json = JSON.stringify(obj);
const url_escaped_json = encodeURIComponent(json);
const img = `<img src="https://quickchart.io/chart?c=${url_escaped_json}" alt="...">`;
constjson=json.stringify(obj);
常量url_转义_json=encodeURIComponent(json);
常数img=`;
请注意,这并不使用HTML转义(它将用
“
替换”
),因为您将数据放入URL中,因此它首先需要URL转义(这将用%20
替换”
,从而使HTML转义不再需要).您可以利用专门的API来处理这种编码问题:
https://image-charts.com/chart?cht=lc
&chd=a:50,60,70,180,190|100,200,300,400,500
&chs=900x400
&chdl=Dogs|Cats&chdlp=t&chdls=444444,15
&chxt=x,y
&chxl=0:|January|February|March|April|May
&chg=1,1
&chco=0018F5,377E22
免责声明:我是Image Charts的创始人。JSON总是一个字符串(而
“{foo:'bar',baz:1}”不是JSON)编写自己的序列化程序,如果对象属性值只是字符串和数字,这并不难。@Andreas-但不是OP要求的格式的字符串“{foo:'bar',baz:1}”
,正如您所说,它不是JSON,但它是OP想要的。请尝试使用encodeURIComponent(JSON.stringify(obj))。确保响应类型为“纯/文本”字符串,是。OP要求的字符串格式:不,完美!谢谢你的解释。喜欢XY问题指针。